有一次我的Android应用程序崩溃了。需要解决方案才能解决这个 [英] At one point my android app is crashing. Need solution to resolve this

查看:140
本文介绍了有一次我的Android应用程序崩溃了。需要解决方案才能解决这个的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要和帮助。有一次,我的应用程序崩溃,错误说索引-1请求,大小为5。我真的没有任何解决方案来解决这个问题,请你帮忙。



Videolist.java



I need and help . At one point my app is crashing with Error saying "Index -1 requested, with a size of 5". I am really not getting any solution to resolve this can you please help.

Videolist.java

<code>public class Videolist extends Activity {


    private Cursor videoCursor;
    private int videoColumnIndex;
    ListView videolist;
    int count;
    String thumbPath;
    SwipeRefreshLayout swipeLayout;

    String[] thumbColumns = { MediaStore.Video.Thumbnails.DATA,MediaStore.Video.Thumbnails.DATA,MediaStore.Video.Thumbnails.VIDEO_ID };
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.filelist);

        initialization();
    }

    public void initialization()
    {
        System.gc();
        String[] videoProjection = { MediaStore.Video.Media._ID,MediaStore.Video.Media.DATA,
                MediaStore.Video.Media.DISPLAY_NAME,MediaStore.Video.Media.SIZE };
        videoCursor = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,videoProjection, null, null, null);
        count = videoCursor.getCount();

        videolist = (ListView) findViewById(R.id.PhoneVideoList);
        videolist.setAdapter(new VideoListAdapter(this.getApplicationContext()));
        videolist.setOnItemClickListener(videogridlistener);
    }
     private AdapterView.OnItemClickListener videogridlistener = new AdapterView.OnItemClickListener()
     {

        public void onItemClick(AdapterView parent, View v, int position,long id)
        {
            System.gc();
            videoColumnIndex = videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
            videoCursor.moveToPosition(position);
            String filename = videoCursor.getString(videoColumnIndex);
            Log.i("FileName: ", filename);
            Intent intent = new Intent(Videolist.this,ViewVideo.class);
                intent.putExtra("videofilename", filename);
                 startActivity(intent);
        }};

    public class VideoListAdapter extends BaseAdapter
    {
        private Context vContext;
        int layoutResourceId;

        public VideoListAdapter(Context c)
        {
            vContext = c;
        }

        public int getCount()
        {
            return videoCursor.getCount();
        }

        public Object getItem(int position)
        {
            return position;
        }

        public long getItemId(int position)
        {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent)
        {
            System.gc();
            ViewHolder holder;
            String id = null;
            View listItemRow = null;
            if(listItemRow == null)
            listItemRow = LayoutInflater.from(vContext).inflate(R.layout.listview, parent, false);

            TextView txtTitle = (TextView)listItemRow.findViewById(R.id.txtTitle);
            TextView txtSize = (TextView)listItemRow.findViewById(R.id.txtSize);
            ImageView thumbImage = (ImageView)listItemRow.findViewById(R.id.imgIcon);

            videoColumnIndex = videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME);
            videoCursor.moveToPosition(position);
            txtTitle.setText(videoCursor.getString(videoColumnIndex));

            videoColumnIndex = videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE);
            videoCursor.moveToPosition(position);
            txtSize.setText(" Size(KB):" + videoCursor.getString(videoColumnIndex));

            int videoId = videoCursor.getInt(videoCursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID));
            Cursor videoThumbnailCursor = managedQuery(MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,
                    thumbColumns, MediaStore.Video.Thumbnails.VIDEO_ID+ "=" + videoId, null, null);

            if (videoThumbnailCursor.moveToFirst())
            {
                thumbPath = videoThumbnailCursor.getString(videoThumbnailCursor.getColumnIndex(MediaStore.Video.Thumbnails.DATA));
                Log.i("ThumbPath: ",thumbPath);

            }
            thumbImage.setImageURI(Uri.parse(thumbPath));

            return listItemRow;

        }

    }
    static class ViewHolder {

        TextView txtTitle;
        TextView txtSize;
        ImageView thumbImage;
    }

}
</code>



LogCat




LogCat

<code>
Process: shashank_balaganchi.sbsvideoplayer, PID: 24541
    android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 5
            at android.database.AbstractCursor.checkPosition(AbstractCursor.java:432)
            at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
            at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
            at android.database.CursorWrapper.getString(CursorWrapper.java:114)
            at shashank_balaganchi.sbsvideoplayer.Videolist$VideoListAdapter.getView(Videolist.java:109)
            at android.widget.AbsListView.obtainView(AbsListView.java:2257)
            at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)
            at android.widget.ListView.onMeasure(ListView.java:1175)
            at android.view.View.measure(View.java:16508)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
            at android.view.View.measure(View.java:16508)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
            at android.view.View.measure(View.java:16508)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
            at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327)
            at android.view.View.measure(View.java:16508)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
            at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
            at android.view.View.measure(View.java:16508)
            at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1955)
            at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1152)
            at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1334)
            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1039)
            at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5648)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
            at android.view.Choreographer.doCallbacks(Choreographer.java:574)
            at android.view.Choreographer.doFrame(Choreographer.java:544)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5052)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
            at dalvik.system.NativeStart.main(Native Methd
</code>

推荐答案

VideoListAdapter.getView(Videolist.java : 109
在android.widget.AbsListView.obtainView(AbsListView.java: 2257
在android.widget.ListView.measureHeightOfChildren(ListView.java: 1263
在android.widget.ListView.onMeasure(ListView.java: 1175
在android.view.View.measure(View.java: 16508
在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java: 5125
在android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:< span class =code-digit> 1404 )
在android.widget.LinearLayout.measureVertical(LinearLayout.java: 695
在android.widget.LinearLayout.onMeasure(LinearLayout.java: 588
在android.view.View.measure(View.java: 16508
在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java: 5125
at android.widget.FrameLayout.onMeasure(FrameLayout.java: 310
在android.view.View.measure(View.java: 16508
在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java: 5125
at com .android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java: 327
在android.view.View.measure(View.java: 16508
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java: 512 5
在android.widget.FrameLayout.onMeasure(FrameLayout.java: 310
at com.android.internal。 policy.impl.PhoneWindow
VideoListAdapter.getView(Videolist.java:109) at android.widget.AbsListView.obtainView(AbsListView.java:2257) at android.widget.ListView.measureHeightOfChildren(ListView.java:1263) at android.widget.ListView.onMeasure(ListView.java:1175) at android.view.View.measure(View.java:16508) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) at android.view.View.measure(View.java:16508) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:16508) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327) at android.view.View.measure(View.java:16508) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at com.android.internal.policy.impl.PhoneWindow


DecorView.onMeasure(PhoneWindow.java: 2291
at android.view.View .measure(View.java: 16508
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java: 1955
在android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java: 1152
在android.view.ViewRootImpl。 performTraversals(ViewRootImpl.java: 1334
在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java: 1039
在android.view.ViewRootImpl
DecorView.onMeasure(PhoneWindow.java:2291) at android.view.View.measure(View.java:16508) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1955) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1152) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1334) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1039) at android.view.ViewRootImpl


TraversalRunnable.run(ViewRootImpl.java: 5648
在android.view.Choreographer
TraversalRunnable.run(ViewRootImpl.java:5648) at android.view.Choreographer


这篇关于有一次我的Android应用程序崩溃了。需要解决方案才能解决这个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆