API版本不兼容

时间:2016-05-30 14:03:31

标签: android

API版本不兼容

我使用android studio制作了一个应用程序,直到现在我一直在使用Nexus 5X(API 23)模拟器进行测试#39;但是,今天我开始在三星Galaxy Tab 2 7.0(API 18)'而应用程序甚至不会启动。我知道这是因为API之间的不兼容性,特别是与我使用的主题有关。我想知道的是如何在不改变应用程序外观的情况下解决这个问题。

记录Cat崩溃日志

java.lang.RuntimeException: Unable to start activity   ComponentInfo{com.***.********/com.***.********.MenuActivity}:   java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at  android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295)
at android.app.ActivityThread.access$700(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:175)
at android.app.ActivityThread.main(ActivityThread.java:5279)
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:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplBase.onCreate(AppCompatDelegateImplBase.java:124)
at android.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:146)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:59)
at com.***.*******.MenuActivity.onCreate(MenuActivity.java:47)
at android.app.Activity.performCreate(Activity.java:5283)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
at  android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295) 
at android.app.ActivityThread.access$700(ActivityThread.java:150) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:175) 
at android.app.ActivityThread.main(ActivityThread.java:5279) 
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:1102) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
at dalvik.system.NativeStart.main(Native Method) 

Android清单

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MenuActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".About" />
    <activity android:name=".SettingsActivity" />
    <activity android:name=".********Activity" />
    <activity android:name=".********Activity" />
    <activity
        android:name=".VideoPlayerActivity"
        android:screenOrientation="landscape" />
    <activity android:name=".*******Activity"></activity>
</application>

Gradle Build App文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.***.*******"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "2.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),     'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:design:22.2.1'
}

注意:最后两行(带有编译的那些......)用红色下划线标出&#39;这个支持库不应该使用与编译不同的版本(22) SDK版本(21)。&#39;

修改:如果我将主要活动的主题更改为&#39; @ style / Theme.AppCompat.NoActionBar&#39;然而,应用程序将启动,应用程序的外观会发生变化。此外,其他不使用新主题的活动也可以正常工作。

感谢任何帮助。

0 个答案:

没有答案