【问题标题】:Android Studio: Android Theme.AppCompat errorAndroid Studio:Android Theme.AppCompat 错误
【发布时间】:2016-09-02 17:47:21
【问题描述】:

我正在关注 Google 的 tutorial 关于使用 Android Studio 开发 Android 应用程序(我使用的是 2.1.3),并且我正在按照说明进行操作,但是,我无法在没有崩溃的情况下运行我的基本应用程序立即地。 Android Studio 的 Android Monitor 输出以下内容:

FATAL EXCEPTION: main
Process: com.example.myfirstapp, PID: 2384
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myfirstapp/com.example.myfirstapp.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

我做错了什么?我应该使用什么主题,我应该编辑什么代码?作为记录,我将输出到物理和模拟器的 Nexus 5,以及 Android API 23。

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/21814825/…
  • 您可以在您定义主题的地方发布themes.xml 吗?它在res/values/themes.xml 中,应该看起来像<style name="Theme.myApp" parent="Theme.AppCompat.Light.DarkActionBar">(以及您想要的父主题的任何自定义。有些人使用styles.xml 而不是themes.xml,但同样的事情。)假设您使用的是AppCompatActivity,您需要确保将该主题与 AndroidManifest.xml 文件中的 MainActivity 相关联——在 android:theme="@style/Theme.myApp"within <Activity>(和/或 <Application>)标签中添加。`
  • 我的styles.xml如下<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> </resources>
  • 尝试更改活动的主题,例如 HoloDark 或 HoloLight 等。我也遇到过同样的问题,但是更改主题后,错误没有撤销。

标签: java android xml android-theme android-studio-2.1


【解决方案1】:

在您的清单中,在权限下方,在活动标签内,放置/更改属性android:theme="@style/Theme.AppCompat"

或者,如果您想自定义主题,请将其更改为 android:theme="@style/MyTheme" 并在 res/values 中添加新资源文件并将其命名为“styles”(styles.xml)并将其用作:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyTheme" parent="Theme.AppCompat">
    // customize your theme here...(optional)
    </style>
</resources>

【讨论】:

  • 我编辑了我的AndroidManifest.xml 以将android:theme="@style/Theme.AppCompat" 包含在&lt;application&gt; 标记中,但这不起作用。我应该把android:theme="@style/Theme.AppCompat"放在哪里?
  • 兄弟,你的manifest一定已经有了主题,你只需要发现它。您不必添加它。你需要改变它。
  • 主题在那里,我确实将其替换为android:theme="@style/Theme.AppCompat",但我仍然得到错误读数java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myfirstapp/com.example.myfirstapp.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
  • 尝试使用样式文件的第二种方法。文件名样式包含 s 而在代码中仅包含其样式。
【解决方案2】:

尝试将 MainActivity.java 顶部的包名称更改为类似于应用的根目录。

也就是说,接下来您要做的是将以下导入语句添加到同一个文件中。

导入android.support.v7.app.AppCompatActivity;

然后你重新构建并再次运行应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-18
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多