【问题标题】:Android NullPointerException when using Theme使用主题时的Android NullPointerException
【发布时间】:2013-07-15 19:52:53
【问题描述】:

我遇到了一个我看不到问题的问题。
我想在我的 Android 应用程序的一项活动中隐藏 ActionBar(我使用最低 SDK 级别 8) 当我添加:

        android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar"

在我的清单文件中,一旦我开始这个活动,我就会得到一个 NullPointerException,如果我不使用它,就没有问题。
这是我的清单中的一个sn-p

        <activity
           android:name="com.example.freivonangst.Breath2Activity"
           android:label="@string/title_activity_breath2"
           android:parentActivityName="com.example.freivonangst.MainActivity"
           android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar">
           <meta-data
              android:name="android.support.PARENT_ACTIVITY"
              android:value="com.example.freivonangst.MainActivity" />
        </activity>

有趣的事实:在另一个项目中使用这个主题是没有问题的。我只是不知道出了什么问题。
各位好心人有什么想法吗?

//编辑堆栈跟踪

    Thread [<1> main] (Suspended (exception RuntimeException))  
<VM does not provide monitor information>   
ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2100    
ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2125 
ActivityThread.access$600(ActivityThread, ActivityThread$ActivityClientRecord, Intent) line: 140    
ActivityThread$H.handleMessage(Message) line: 1227  
ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
Looper.loop() line: 137 
ActivityThread.main(String[]) line: 4898    
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
Method.invoke(Object, Object...) line: 511  
ZygoteInit$MethodAndArgsCaller.run() line: 1006 
ZygoteInit.main(String[]) line: 773 
NativeStart.main(String[]) line: not available [native method]  

奇怪的是 LogCat 没有打印任何错误 oO 只有这两个警告

    07-15 22:36:55.735: W/ActivityThread(16095): Application com.example.freivonangst is waiting for the debugger on port 8100...
    07-15 22:42:53.375: W/dalvikvm(16095): VFY: unable to resolve static method 7: Landroid/support/v4/app/NavUtils;.navigateUpFromSameTask (Landroid/app/Activity;)V

//编辑 2
我知道它是 NullPointerExeption,因为调试器说它是一个,有 3 个变量:
这 --> android.app.ActivityThread@40cdf710
e --> java.lang.NullPointerException
活动 --> com.example.freivonangst.Breath2Activity@40d269d0

【问题讨论】:

  • 异常是什么样的?
  • 请添加您的日志猫输出
  • 你是怎么发现你得到 NullPointerException 的?

标签: android android-manifest android-theme


【解决方案1】:

DeviceDefault 是在 API 14 中添加的,因此在低于此的任何平台上都会出现错误。话虽如此,不知道它在您的其他项目中是如何工作的。

【讨论】:

  • 我在我的 4.1.2 Mobile 上尝试过,所以它应该,至少在那里工作。不应该吗?
  • 应该,是的。什么样的设备?你在其他设备上试过吗?制造商总是有可能以删除一些内置样式的方式修改了 rom(专门用于主题)。
  • 我使用的是三星 Galaxy S3 和虚拟 Google Nexus One(4.2.2 版)
猜你喜欢
  • 1970-01-01
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
  • 1970-01-01
  • 2022-11-02
相关资源
最近更新 更多