我刚刚发布了一个警报应用程序,这简直是地狱。当某些设备尝试打开警报列表屏幕时,它会中断。我不知道为什么它会在某些设备上中断,而不是在其他设备上。我见过的每部手机都可以正常运行,但是在其他一些设备上打开警报列表就会炸毁它。对于这种特定的设备兼容性问题,我真的不了解。
AlarmClock 第 227 行的代码是这样的:
View changeSettings = findViewById(R.id.alarm_settings);
changeSettings.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), SettingsActivity.class));
}
});
它引用了这行 xml:
<Button
android:id="@+id/alarm_settings"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0.0dip" android:layout_height="fill_parent"
android:text="@string/menu_settings"
android:layout_weight="1.0" />
这链接到我从改编版的 android 股票警报中借用的设置活动的来源,但它使用了据称已弃用的 addPreferencesFromResource。这就是造成这个问题的原因吗?
这是来自用户设备的堆栈跟踪:
Nexus 7 触摸设置警报按钮,然后它崩溃
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nathantempelman.GoodMorningAlarmFree/com.nathantempelman.alarmclockfree.AlarmClock}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2185)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2210)
at android.app.ActivityThread.access$600(ActivityThread.java:142)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1208)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4931)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.nathantempelman.alarmclockfree.AlarmClock.updateLayout(AlarmClock.java:227)
at com.nathantempelman.alarmclockfree.AlarmClock.onCreate(AlarmClock.java:210)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2139)
... 11 more
任何帮助都会非常棒。我知道它也发生在其他人的平板电脑上,不确定是否是平板电脑的问题。如果有人想对其进行测试,该应用程序就在这里:https: //play.google.com/store/apps/details?id=com.nathantempelman.GoodMorningAlarmFree