另一个InstantiationException

时间:2014-05-07 13:38:30

标签: java android nullpointerexception runtime-error

我有InstantiationException,我在这里搜索了其他答案和问题,但无法找到与我的问题相关的任何内容。 应用程序崩溃在MainActivity上查看logcat,它给出了这个

的错误
mTitles = getResources().getStringArray(R.array.menu_items); 

我用

声明了它
private String[] mTitles;

取自"导航抽屉"谷歌提供的例子,我只是在玩和修改它(学习),但这个问题已成为一个真正的痛苦。

继承日志

  java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.prowapps.seaport/com.prowapps.seaport.MainActivity}: java.lang.InstantiationException: com.prowapps.seaport.MainActivity
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2253)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
        at android.app.ActivityThread.access$900(ActivityThread.java:169)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5476)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
        Caused by: java.lang.InstantiationException: com.prowapps.seaport.MainActivity
        at java.lang.Class.newInstance(Class.java:1561)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2244)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
            at android.app.ActivityThread.access$900(ActivityThread.java:169)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5476)
            at java.lang.reflect.Method.invoke(Native Method)
            at   com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
          Caused by: java.lang.reflect.InvocationTargetException
          at java.lang.reflect.Constructor.newInstance(Native Method)
          at java.lang.Class.newInstance(Class.java:1559)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2244)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
            at android.app.ActivityThread.access$900(ActivityThread.java:169)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5476)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
           Caused by: java.lang.NullPointerException: Attempt to invoke virtual method   'android.content.res.Resources android.content.Context.getResources()' on a null object   reference
           at android.content.ContextWrapper.getResources(ContextWrapper.java:94)
           at android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:78)
           at com.prowapps.seaport.MainActivity.<init>(MainActivity.java:695)
            at java.lang.reflect.Constructor.newInstance(Native Method)
            at java.lang.Class.newInstance(Class.java:1559)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2244)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
            at android.app.ActivityThread.access$900(ActivityThread.java:169)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5476)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)

如果有人能对此有所了解,那将非常有帮助,谢谢

修改

/ *****************导航抽屉********************** /

    mTitle = mDrawerTitle = getTitle();
    mTitles = getResources().getStringArray(R.array.menu_items);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList = (ListView) findViewById(R.id.left_drawer);

    // Set a custom shadow that overlays the main content when the drawer opens
    mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
    // Set up the drawer's list view with items and click listener
    mDrawerList.setAdapter(new ArrayAdapter<String>(this,
            R.layout.drawer_list_item, mTitles));
    // Set the list's click listener
    mDrawerList.setOnItemClickListener(new DrawerItemClickListener());

1 个答案:

答案 0 :(得分:1)

在调用onCreate()函数之前初始化了变量mTitles;;)