致命异常:java.lang.NoClassDefFoundError:android.support.v7.appcompat.R $ layout

时间:2015-08-20 06:19:39

标签: android android-studio gradle appcompat-v7-r21

我刚从日食迁移到工作室。我跟着一个博客将项目从eclipse导出到了工作室。该应用程序在棒棒糖中运行良好,并在棒棒糖前设备中抛出以下错误。

仅在工作室中获取此错误。不是在日食。

FATAL EXCEPTION: main
    java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$layout
            at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:324)
            at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246)
            at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
            at com.hsp.inventory.SplashActivity.onCreate(SplashActivity.java:53)
            at android.app.Activity.performCreate(Activity.java:5122)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
          //
          ......
          //

我的gradle文件

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
        mavenCentral()
        maven {
            url "http://dl.bintray.com/journeyapps/maven"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

apply plugin: 'com.android.application'

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.gms:play-services:7.5.0'
    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:cardview-v7:22.2.0'
    compile 'com.android.support:recyclerview-v7:22.2.0'
    compile 'com.google.code.gson:gson:2.3'
   // compile "com.android.support:support-v4:18.0.+"

    compile project(':sliderLibrary')
    compile project(':camera')
    compile project(':volley')

    // Zxing library compile

    compile 'com.journeyapps:zxing-android-embedded:2.3.0@aar'
    compile 'com.journeyapps:zxing-android-legacy:2.3.0@aar'
    compile 'com.journeyapps:zxing-android-integration:2.3.0@aar'
    compile 'com.google.zxing:core:3.2.0'

}


android {

    compileSdkVersion 22
    buildToolsVersion '22.0.1'

    defaultConfig {
        applicationId "com.hsp.inventory"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }


    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets', 'src/main/assets', 'src/main/assets/fonts']
        }

        instrumentTest.setRoot('tests')


        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

如果您想查看我的manifest和act_splash.xml,请告诉我。我会在这里更新。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

您的logcat返回

  

java.lang.NoClassDefFoundError:android.support.v7.appcompat

因此请更新您的支持存储库(版本23) 和 **对于API 23:**

compile 'com.android.support:appcompat-v7:23.0.0'

答案 1 :(得分:0)

正如我所看到的,您在此处发布的gradle文件是顶级gradle文件,其中包含不应存在的内容。替换您的顶级gradle文件内容,如下所示:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
        mavenCentral()
        maven {
            url "http://dl.bintray.com/journeyapps/maven"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

答案 2 :(得分:0)

v7 appcompat的android文档中 是一张纸条:

  

注意:此库取决于v4支持库。如果你正在使用   Ant或Eclipse,请确保将v4支持库作为一部分包含在内   这个库的类路径。

我认为这是你的问题,因为你已经在你的gradle中注释掉了这一行:

   // compile "com.android.support:support-v4:18.0.+"

再次添加该行并尝试编译该项目。

此外,我在您的游戏中看不到com.android.support:appcompat-v7:21.0.0

答案 3 :(得分:0)

可能是一个很长的镜头,但要确保你的图像在/ res / drawable下,而不是/ res / drawable-v24 请参阅此答案:Binary XML file line #0: Error inflating class ImageView