【问题标题】:styles.xml with android version qualifier cause app crash带有 android 版本限定符的 styles.xml 导致应用程序崩溃
【发布时间】:2015-02-25 02:46:53
【问题描述】:

对于最低版本的 Android,我的应用使用不同的样式:
我的应用使用最低版本:   API 9  Android 2.3 (Gingerbread)

我使用版本限定符为每个 Android 版本分配不同的样式:

我来自values/style.xml 的样式文件是:

<style name="AppTheme" parent="android:Theme">

</style>

values-v11/styles.xml 的我的样式文件(如果设备是 Android 3.0 或更高版本):

<style name="AppTheme" parent="android:Theme.Holo">

</style>

来自values-v14/styles.xml 的我的样式文件(如果设备是 Android 4.0 或更高版本):

<style name="AppTheme" parent="android:Theme.DeviceDefault">

</style>

以下.xml只是AndroidManifest.xml的一个片段

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
</application>


我的问题是:当应用程序在我的手机中运行时,应用程序意外崩溃,我知道我的问题在于版本限定符的使用。

【问题讨论】:

  • 请发布您的异常堆栈跟踪
  • 我只添加了styles.xml,文件夹为values-v11
  • 如果不发布异常日志,我只是猜测:您的文件夹应该命名为values-v11values-v21,而不是values-11

标签: android android-resources


【解决方案1】:

您使用 Android 2.3 以获得更高的兼容性。 在 Android Studio 上,使用以下代码自动创建最低版本(如 Android 2.3 Gingerbread 或更早版本)的活动:

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

ActionBarActivity 与不同于AppCompat 的样式不兼容

尝试从ActionBarActivity 转换为Activity

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-08
    • 2013-12-02
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 2020-11-16
    • 2018-01-29
    相关资源
    最近更新 更多