2016-07-19 7 views
0

Heute, wenn ich meine Android-stdio aktualisiert hatte, dann gesehen folgenden Fehler hatte ich, kann ich nicht Ursache für diesen Fehler verstehen, aber es ist eine MengeBei der Aktualisierung von Android stdio, Fehler: Ausführung fehlgeschlagen für Task ': app: dexDebug'. > Com.android.ide.common.process.ProcessException:

truble . 
Error:Execution failed for task ':app:dexDebug'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe'' finished with non-zero exit value 2 
geben

und dies ist auch im Rahmen der vorherigen Fehler,

Error:Note: Some input files use or override a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
AGPBI: {"kind":"simple","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","sources":[{}]} 
AGPBI: {"kind":"simple","text":"com.android.dex.DexException: Multiple dex files define Landroid/support/v7/appcompat/R$anim;","sources":[{}]} 
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579)","sources":[{}]} 
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535)","sources":[{}]} 
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517)","sources":[{}]} 
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164)","sources":[{}]} 
AGPBI: {"kind":"simple","text":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:188)","sources":[{}]} 
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)","sources":[{}]} 
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)","sources":[{}]} 
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:277)","sources":[{}]} 
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:245)","sources":[{}]} 
AGPBI: {"kind":"simple","text":"\tat com.android.dx.command.Main.main(Main.java:106)","sources":[{}]} 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:dexDebug'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe'' finished with non-zero exit value 2 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

Dies ist meine gradle Datei,

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

task wrapper(type: Wrapper) { 
    gradleVersion = '2.2.1' 
} 
buildscript { 
    repositories { 
     jcenter() 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.3.0' 
     classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.10.+' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
     mavenCentral() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

diese ist an zweiter Stelle build.gradle Datei,

apply plugin: 'com.android.application' 


android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     applicationId "com.shubham.MeraIndore" 
     minSdkVersion 12 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.nineoldandroids:library:2.4.0' 
    compile 'com.daimajia.androidanimations:library:[email protected]' 
    compile 'com.android.support:design:23.1.1' 
    compile 'com.android.support:cardview-v7:23.0.1' 
    compile 'com.android.support:recyclerview-v7:23.0.1' 
    compile project(':library') 
} 

Bitte helfen Sie mir.

+0

hinzufügen 'Classpath‚com.android.tools.build: gradle: 2.1.2'' und posten Sie Ihre 'build.gradle' und fügen Sie' android { dexOptions { preDexLibraries = false } } ' –

+0

http://stackoverflow.com/questions/20989317/multiple-dex-files-define-landroid-support-v4-accessibilityservice-accessibility –

+1

KI m versuchen und geben Update –

Antwort

0

es passiert immer, weil Sie multiDex für die Freigabe aktiviert baut, nicht nur für Debug baut.

Versuchen Sie folgendes:

defaultConfig { 
    multiDexEnabled true 
} 
0

Eine der Ursachen dafür ist, wenn Sie die 65K method limit erreichen. Sie können dies lösen, indem Sie entweder nicht verwendeten Code/Bibliotheken entfernen. Dafür müssen Sie sich Ihre Abhängigkeiten ansehen. Um Ihre Abhängigkeiten aufzulisten, können Sie

Befehl im Stammverzeichnis Ihres Projekts ausführen.

Oder, wenn es keine Code/Bibliotheken zu entfernen, können Sie multidex Unterstützung verwenden

dependencies { 
    ... 
    // add this since you are using minSdkVersion less than 21 
    compile 'com.android.support:multidex:1.0.1' 
} 

und setzen multiDexEnabled auf true in defaultConfig wie diese

defaultConfig { 
    applicationId "com.shubham.MeraIndore" 
    minSdkVersion 12 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
    multiDexEnabled true 
} 

Sie auch die MultiDexApplication verweisen müssen Klasse in Ihrem Manifest, indem Sie dem Anwendungs-Tag android:name="android.support.multidex.MultiDexApplication" hinzufügen.

Hinweis: Wenn stattdessen die App die Application-Klasse erweitert, können Sie die attachBaseContext() Methode überschreiben und MultiDex.install(this) rufen multidex zu ermöglichen, wie diese.

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 

Weitere Einzelheiten finden Sie in diesem SO Antwort und this.

0

fügen Sie diese in Ihrer Anwendung gradle Abhängigkeiten

compile 'com.android.support:multidex:1.0.1' 

diese

multiDexEnabled true 

fügen Sie diese zu Ihrer App gradle

dexOptions { 
    incremental true 
    javaMaxHeapSize "4g" 
} 

Sync App

in Ihrem DefaultConfig hinzufügen und Schluß y in Manifest-Datei folgende Anwendung hinzufügen

android:name="android.support.multidex.MultiDexApplication" 
+0

Danke an alle, ich versuche einen Vorschlag –

2
dependencies { 
... 
// add this since you are using minSdkVersion less than 21 
compile 'com.android.support:multidex:1.0.1' 
} 

und setzen multiDexEnabled auf true in DefaultConfig wie diese

defaultConfig { 
applicationId "com.shubham.MeraIndore" 
minSdkVersion 12 
targetSdkVersion 23 
versionCode 1 
versionName "1.0" 
multiDexEnabled true 

}

You also need to reference the MultiDexApplication class in your manifest by adding  android:name="android.support.multidex.MultiDexApplication" to application tag. 

Hinweis: Wenn stattdessen Ihre Anwendung erstreckt In der Application-Klasse können Sie die Methode attachBaseContext() überschreiben und MultiDex.install (this) aufrufen, um Multidex zu aktivieren Dies.

@Override 
protected void attachBaseContext(Context base) { 
super.attachBaseContext(base); 
MultiDex.install(this); 

}

0

Sie scheinen verschiedene Versionen der Android Support-Bibliothek (23.0.1 und 23.1.1) zu verwenden. Vielleicht sollten Sie versuchen, die gleiche Version zu verwenden.

auch nach wie vor vorgeschlagen, Liste Ihrer Abhängigkeiten zu überprüfen, ob sie die gleichen Versionen wie Sie von der Support-Bibliothek verwenden:

./gradlew app:dependencies --configuration compile 
Verwandte Themen