2013-03-12 87 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。但也许有人有同样的问题,并可能想检查这一点。