应用程序在冰淇淋三明治平台上崩溃

时间:2012-02-16 06:34:06

标签: android android-layout

我一直在开发一个应用程序,它绝对可以在2.x版本的android上运行,但在4.x崩溃,即冰淇淋三明治平台。记录显示一些奇怪的结果,我无法弄清楚。可能是你们任何人都可以提供的。我在Log中收到以下异常:

02-16 11:18:43.518: E/AndroidRuntime(869): FATALEXCEPTION: main
02-16 11:18:43.518: E/AndroidRuntime(869): java.lang.RuntimeException: Unable to start activityComponentInfo{com.my.project.activities/com.my.project.controllers.MainController}: java.lang.NullPointerException
02-16 11:18:43.518: E/AndroidRuntime(869): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)
02-16 11:18:43.518: E/AndroidRuntime(869): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
02-16 11:18:43.518: E/AndroidRuntime(869): at android.app.ActivityThread.access$600(ActivityThread.java:122)
02-16 11:18:43.518: E/AndroidRuntime(869): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
02-16 11:18:43.518: E/AndroidRuntime(869): at android.os.Handler.dispatchMessage(Handler.java:99)
02-16 11:18:43.518: E/AndroidRuntime(869): at android.os.Looper.loop(Looper.java:137)
02-16 11:18:43.518: E/AndroidRuntime(869): at android.app.ActivityThread.main(ActivityThread.java:4340)
02-16 11:18:43.518: E/AndroidRuntime(869): at java.lang.reflect.Method.invokeNative(Native Method)
02-16 11:18:43.518: E/AndroidRuntime(869): at java.lang.reflect.Method.invoke(Method.java:511)
02-16 11:18:43.518: E/AndroidRuntime(869): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-16 11:18:43.518: E/AndroidRuntime(869): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-16 11:18:43.518: E/AndroidRuntime(869): at dalvik.system.NativeStart.main(Native Method)
02-16 11:18:43.518: E/AndroidRuntime(869): Caused by: java.lang.NullPointerException
02-16 11:18:43.518: E/AndroidRuntime(869): at com.my.project.controllers.MainController.onCreate(MainController.java:184)
02-16 11:18:43.518: E/AndroidRuntime(869): at android.app.Activity.performCreate(Activity.java:4465)
02-16 11:18:43.518: E/AndroidRuntime(869): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-16 11:18:43.518: E/AndroidRuntime(869): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
02-16 11:18:43.518: E/AndroidRuntime(869):  ... 11 more

当我点击它时,它会转到我在ImageButton上设置点击监听器的行。我已经交叉检查,我的ImageButton不是null,而是相应地设置了所有其他按钮,除了那个。

在Xml按钮的代码是:

<ImageButton
            android:id="@+id/tab_settings"
            android:background="@drawable/settings_unpressed"
            android:scaleType="fitCenter"
            android:layout_height="37dp"
            android:layout_marginTop="3dp"
            android:layout_marginRight="2dp"
            android:layout_marginLeft="2dp"
            android:layout_width="60dp" />

并且onCreate方法包含以下代码,其中我使用此ImageButton以及其他按钮:

ImageButton btn_settings = (ImageButton) findViewById(R.id.tab_settings);
btn_settings.setOnClickListener(this);

我不知道为什么NPE正在发生,任何帮助,任何避免它的想法都非常感激。请注意,我提到的相同代码正在处理所有2.X版本,但在ICS上,上述错误正在发生。如果你能把我拉出来,请提前致谢。

0 个答案:

没有答案