我剛剛發佈了一個鬧鐘應用程序,它已經是地獄了。當他們嘗試打開警報列表屏幕時,它正在打開某些設備。我不知道爲什麼它在某些設備上而不是其他設備上。我看過的每一部手機都可以正常工作,但在其他設備上打開鬧鐘列表會讓它失望。對於這種特定的設備兼容性問題,我真的沒有深入瞭解。在某些設備上啓動活動時發生崩潰
在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