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

我刚从eclipse迁移到studio。 我跟着一个博客将项目从eclipse导出到studio。 该应用程序在棒棒糖罚款,并在棒棒糖设备抛出以下错误。

只有在工作室得到这个错误。 不在日食。

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') } } 

请让我知道如果你想看看我的清单和act_splash.xml。 我会在这里更新。

任何想法?

Solutions Collecting From Web of "致命exception:java.lang.NoClassDefFoundError:android.support.v7.appcompat.R $ layout"

我面临同样的问题,并修复它。 这是Dex限制的问题。 由于达到了dex限制,它会创build两个dex文件。 棒棒糖知道如何阅读,除非您在Application类中指定棒棒糖,否则棒棒糖不知道。

请确保以下内容到位:

在build.gradle

 dependencies { compile 'com.android.support:multidex:1.0.0' } defaultConfig { multiDexEnabled true } 

重要支持pre-Lollipop:

在清单中,在应用程序标签下,

 <application ... android:name="android.support.multidex.MultiDexApplication"> ... </application> 

或者,如果您已经使用了自己的Application类,请使您的Application重写attachBaseContext开头

  import android.support.multidex.MultiDexApplication; import android.support.multidex.MultiDex; public class MyApplication extends MultiDexApplication { // ...... @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } } 

参考: https : //developer.android.com/tools/building/multidex.html#mdex-gradle

你的logcat返回

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

所以更新你的支持库(版本23)和**对于API 23:**

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

正如我可以看到你在这里发布的gradle文件是顶层的gradle文件,其中包含不应该在那里的东西。 replace如下所示的顶层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() } } 

在v7 appcompat的android文档中有一个注释:

注意:此库取决于v4支持库。 如果您正在使用Ant或Eclipse,请确保将v4 Support Library作为此库类path的一部分。

我认为这是你的问题,因为你有你的gradle中的评论线:

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

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

另外我看到没有com.android.support:appcompat-v7:21.0.0行在你的gradle