我刚刚发布了一个闹钟应用程序,它已经是地狱了。当他们尝试打开警报列表屏幕时,它正在打开某些设备。我不知道为什么它在某些设备上而不是其他设备上。我看过的每一部手机都可以正常工作,但在其他设备上打开闹钟列表会让它失望。对于这种特定的设备兼容性问题,我真的没有深入了解。在某些设备上启动活动时发生崩溃
在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
您的堆栈跟踪表明问题出现在您的updateLayout方法AlarmClock.java:227中。 – Miriam 2013-03-12 13:09:56
正如你所看到的,这个问题是在'updateLayout(..)'方法中的第227行的AlarmClock.java中的'NullPointerException'。基本上,你正在试图用一个null对象来做些事情。如果您有不同的平板电脑/手机布局,那么我猜测并说您正尝试使用平板电脑布局中不存在的View进行操作。 – 2013-03-12 13:10:07
我还没有指定平板电脑的特定布局,这对所有设备都是一样的。有问题的布局是警报列表,平板电脑上不存在这种视图吗?我曾希望它能像一部巨大的手机一样工作,而那个更大的会更好。 – NathanTempelman 2013-03-12 15:35:54