扩展 AppCompatActivity 会导致应用程序崩溃

xYu*_*uri 3 android android-appcompat appcompatactivity

我正在创建一个简单的应用程序来测试AppCompat,当我扩展AppCompatActivity应用程序崩溃时,当我运行应用程序时AppCompat(扩展android.app.Activity并且一切保持不变),

MainActivity extends Activity- 有效 MainActivity extends AppCompat Activity- 崩溃

测试 android 4.4

日志猫:

------------------------------------------------

05-01 23:03:44.916 E/dalvikvm(23031): heapsize Dalvik_dalvik_system_VMRuntime_nativeMinimumHeapSize 0
05-01 23:03:44.916 E/dalvikvm(23031): heapsize Dalvik_dalvik_system_VMRuntime_nativeMinimumHeapSize 15301176
05-01 23:03:44.966 E/dalvikvm(23031): Could not find class 'android.arch.core.internal.FastSafeIterableMap', referenced from method android.arch.lifecycle.LifecycleRegistry.<init>
05-01 23:03:44.986 E/AndroidRuntime(23031): FATAL EXCEPTION: main
05-01 23:03:44.986 E/AndroidRuntime(23031): Process: com.android.xDrawer, PID: 23031
05-01 23:03:44.986 E/AndroidRuntime(23031): java.lang.NoClassDefFoundError: android.arch.core.internal.FastSafeIterableMap
05-01 23:03:44.986 E/AndroidRuntime(23031):     at android.arch.lifecycle.LifecycleRegistry.<init>(LifecycleRegistry.java:59)
05-01 23:03:44.986 E/AndroidRuntime(23031):     at android.support.v4.app.SupportActivity.<init>(SupportActivity.java:47)
05-01 23:03:44.986 E/AndroidRuntime(23031):     at android.support.v4.app.BaseFragmentActivityApi14.<init>(BaseFragmentActivityApi14.java:28)
05-01 23:03:44.986 E/AndroidRuntime(23031):     at android.support.v4.app.BaseFragmentActivityApi16.<init>(BaseFragmentActivityApi16.java:34)
05-01 23:03:44.986 E/AndroidRuntime(23031):     at android.support.v4.app.FragmentActivity.<init>(FragmentActivity.java:68)
05-01 23:03:44.986 E/AndroidRuntime(23031):     at android.support.v7.app.AppCompatActivity.<init>(AppCompatActivity.java:61)
05-01 23:03:44.986 E/AndroidRuntime(23031):     at com.android.xDrawer.MainActivity.<init>(MainActivity.java:49)
05-01 23:03:44.986 E/AndroidRuntime(23031):     at java.lang.Class.newInstanceImpl(Native Method)
05-01 23:03:44.986 E/AndroidRuntime(23031):     at java.lang.Class.newInstance(Class.java:1208)

-----------------------------------------
Run Code Online (Sandbox Code Playgroud)

添加

 vectorDrawables.useSupportLibrary = true
Run Code Online (Sandbox Code Playgroud)

在应用程序的 gradls 没有解决问题

更新:

完整的gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        applicationId "com.mycompany.myapp"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
              useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
        compile "com.android.support:appcompat-v7:27.1.1"
}
Run Code Online (Sandbox Code Playgroud)

活动:

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity 
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
         super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
Run Code Online (Sandbox Code Playgroud)

xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">

   <TextView
        android:text="@string/hello_world"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

款式:

<resources>
    <style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

xYu*_*uri 5

解决了,问题是,我有android SDK 21(的android.jar)有appcompat 27.1.1,尝试Android SDK中24,25,26,27使用appcompat 27.1.1,但仍然没有运气,然后试图android SDK 25appcompat 25.0.0和它的工作就像一个魅力。希望这可以帮助任何有同样问题的人。