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
Puede ser una posibilidad remota, pero asegúrese de que sus imágenes estén bajo / res / drawable y not / res / drawable-v24 Ver esta respuesta: Línea de archivo XML binario # 0: Error al inflar la clase ImageView
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''