2013-03-12 129 views
0

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

在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

+1

您的堆棧跟蹤表明問題出現在您的updateLayout方法AlarmClock.java:227中。 – Miriam 2013-03-12 13:09:56

+0

正如你所看到的,這個問題是在'updateLayout(..)'方法中的第227行的AlarmClock.java中的'NullPointerException'。基本上,你正在試圖用一個null對象來做些事情。如果您有不同的平板電腦/手機佈局,那麼我猜測並說您正嘗試使用平板電腦佈局中不存在的View進行操作。 – 2013-03-12 13:10:07

+0

我還沒有指定平板電腦的特定佈局,這對所有設備都是一樣的。有問題的佈局是警報列表,平板電腦上不存在這種視圖嗎?我曾希望它能像一部巨大的手機一樣工作,而那個更大的會更好。 – NathanTempelman 2013-03-12 15:35:54

回答

1

你有一個NullPointerException在UpdateLayout請法在AlarmClock類在管線227 :)

Caused by: java.lang.NullPointerException 
at com.nathantempelman.alarmclockfree.AlarmClock.updateLayout(AlarmClock.java:227) 
at com.nathantempelman.alarmclockfree.AlarmClock.onCreate(AlarmClock.java:210) 

我會首先檢查代碼。

因爲你沒有張貼任何代碼,我不能幫助更多的時刻:)

+0

啊哈,哇,對不起。我看了一下前面的六條線,完全fl,and and,不得不去上班。當我回家時,我會找到這個代碼。謝謝:) – NathanTempelman 2013-03-12 15:34:00

+1

對於Android中的大多數異常(甚至可能是Java?),檢查是否存在「Caused by」-Exception是一個好主意。我瞭解到這個難題:D – Dodge 2013-03-12 17:31:20

+0

我添加了代碼,仍然不知道該怎麼做。任何想法? – NathanTempelman 2013-03-12 23:20:41

1

就跨越這種情況下,別人絆,到底問題是,有片劑一個單獨的佈局文件這是我在我的應用程序的一部分借用的源代碼庫中沒有看到的。我明顯增加了一些功能,但沒有更新平板電腦佈局。訪問我添加的東西的按鈕不在平板電腦佈局文件中。只有在平板設備加載平板電腦佈局文件並在顯示屏中搜索不存在的對象時,纔會出現空指針異常。當我刪除該文件時,一切都很完美。

我知道,hurp和or durp。但也許有人有同樣的問題,並可能想檢查這一點。