我刚刚发布了一个警报应用程序,这真是太棒了。当他们试图打开警报列表屏幕时,它会在某些设备上中断。我不知道为什么它会破坏某些设备而不是其他设备。我看过它试过的每一部手机都能很好地工作,但是在其他一些设备上打开报警列表会让人感到震惊。对于这种特定的设备兼容性问题,我真的不太了解。
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
答案 0 :(得分:1)
你在第227行的updateLayout方法中的AlarmClock类中有一个NullPointerException:)
Caused by: java.lang.NullPointerException
at com.nathantempelman.alarmclockfree.AlarmClock.updateLayout(AlarmClock.java:227)
at com.nathantempelman.alarmclockfree.AlarmClock.onCreate(AlarmClock.java:210)
我会先检查一下代码。
由于您没有发布任何代码,我现在无法提供更多帮助:)
答案 1 :(得分:1)
以防万一其他人偶然发现这个问题,最后的问题是平板电脑有一个单独的布局文件,我在我为应用程序的一部分借用的源代码库中没有看到。我显然添加了一堆功能,但没有更新平板电脑布局。访问我添加的内容的按钮不在平板电脑布局文件中。只有当平板电脑设备加载了平板电脑布局文件并在显示屏中搜索不存在的对象时,才会出现空指针异常。当我删除该文件时,一切都很完美。
我知道,是冲击还是潜伏。但也许有人有同样的问题,可能想检查一下。