support last android android-studio gradle appcompat-v7-r21

last - EXCEPCIÓN FATAL: java.lang.NoClassDefFoundError: android.support.v7.appcompat.R $ layout



com.android.support:design 26 (5)

Como puedo ver, el archivo de gradle que has publicado aquí es el archivo de nivel superior de gradle, que contiene cosas que no deberían estar allí. Reemplace el contenido de su archivo de nivel superior como abajo:

// 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() } }

Acabo de migrar de eclipse a estudio. Seguí un blog para exportar un proyecto de eclipse a studio. La aplicación funciona bien en Lollipop y lanza el siguiente error en los dispositivos de Pre Lollipop.

Obteniendo este error solo en estudio. no en 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) // ...... //

Mi archivo de 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'') } }

Por favor, avíseme si desea ver mi manifiesto y act_splash.xml. Voy a actualizar aquí.

¿Alguna idea?


En la documentación de Android para v7 appcompat hay una nota:

Nota: esta biblioteca depende de la biblioteca de soporte de v4. Si está utilizando Ant o Eclipse, asegúrese de incluir la Biblioteca de soporte v4 como parte de la ruta de clase de esta biblioteca.

Creo que ese es tu problema ya que tienes un comentario en la línea de tu gradle:

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

Agregue la línea nuevamente e intente compilar el proyecto.

Tampoco veo ninguna línea com.android.support:appcompat-v7:21.0.0 en tu gradle


Me enfrenté al mismo problema y lo arreglé. Es un problema con el límite de Dex. Debido a que se alcanza el límite de dex, crea dos archivos dex. Lollipop sabe leer, el pre-Lollipop no tiene idea a menos que lo especifique en la clase Application .

Por favor asegúrese de que lo siguiente esté en su lugar:

en build.gradle

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

IMPORTANTE para soportar pre-Lollipop:

En Manifiesto, bajo la etiqueta de aplicación,

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

O si ha usado su propia clase de Application , haga que su Application anule el attachBaseContext partir de

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

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



Tu logcat regresa

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

Así que actualice su repositorio de soporte (Versión 23) y ** para API 23: **

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