J'ai mis à jour la dernière version d'Android Studio 2.0 Bêta 6 avec le diplôme:
dependencies {
classpath 'com.Android.tools.build:gradle:2.0.0-beta6'
}
L'application fonctionne parfaitement sur les émulateurs et les périphériques. J'ai tout testé et tout fonctionne bien.
J'ai eu beaucoup d'erreurs seulement quand j'essaie de générer l'APK signé,
J'ai eu quelques erreurs dans les dépendances, toutes résolues quand j'ai exclu vector drawable, vector animate drawable et bibliothèque Support-v4
Maintenant, je n'ai pas d'erreur de dépendance.
maintenant mon gradle.build pour le module d'application ressemble à ceci:
apply plugin: 'com.Android.application'
Android {
configurations {
//all*.exclude group: 'com.Android.support', module: 'support-v4'
all*.exclude module: 'animated-vector-drawable'
all*.exclude module: 'support-vector-drawable'
//all*.exclude module: 'support-v4'
}
repositories {
maven { url "https://jitpack.io" }
}
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
applicationId "com.test.test"
minSdkVersion 11
targetSdkVersion 23
versionCode 1
versionName "1"
// multiDexEnabled true
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile('com.github.afollestad.material-dialogs:commons:0.8.5.5@aar') {
transitive = true
exclude module: 'support-v4'
exclude module: 'appcompat-v7'
exclude module: 'recyclerview-v7'
}
compile('com.google.Android.gms:play-services-ads:8.4.0') {
exclude module: 'support-v4'
}
compile('com.google.Android.gms:play-services-analytics:8.4.0') {
exclude module: 'support-v4'
}
compile('com.Android.support:appcompat-v7:23.2.0') {
exclude module: 'support-v4'
exclude module: 'animated-vector-drawable'
exclude module: 'support-vector-drawable'
}
compile('com.Android.support:support-v4:23.2.0') {
exclude module: 'animated-vector-drawable'
exclude module: 'support-vector-drawable'
}
compile('com.Android.support:palette-v7:23.2.0') {
exclude module: 'support-v4'
}
compile('com.Android.support:cardview-v7:23.2.0') {
exclude module: 'support-v4'
}
compile('com.Android.support:recyclerview-v7:23.2.0') {
exclude module: 'support-v4'
}
compile('com.Android.support:design:23.2.0') {
exclude module: 'support-v4'
}
compile('com.nineoldandroids:library:2.4.0') {
exclude module: 'support-v4'
}
compile('com.baoyz.swipemenulistview:library:1.2.1') {
exclude module: 'support-v4'
exclude module: 'appcompat-v7'
exclude module: 'recyclerview-v7'
}
compile('com.squareup.picasso:picasso:2.5.2') {
exclude module: 'support-v4'
}
compile('com.nononsenseapps:filepicker:2.5.0') {
exclude module: 'support-v4'
exclude module: 'appcompat-v7'
exclude module: 'recyclerview-v7'
}
compile 'com.google.code.gson:gson:2.6.1'
}
Les erreurs n'apparaissent que lorsque je compile pour la publication:
C'est l'erreur quand j'active multiDex:
Error:Execution failed for task ':app:transformClassesWithMultidexlistForRelease'.
> com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/Java'' finished with non-zero exit value 1
Et c'est l'erreur quand je l'éteins:
:app:transformClassesWithDexForRelease
Error:Error converting bytecode to dex:
Cause: Java.lang.RuntimeException: Exception parsing classes
Error:Execution failed for task ':app:transformClassesWithDexForRelease'.
> com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: Java.util.concurrent.ExecutionException: com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/Java'' finished with non-zero exit value 1
J'ai essayé de changer le buildToolsVersion '23.0.2'
à chaque version possible et rien n'a changé.
quand j'ai mis la version 22.0.1 j'ai eu cette erreur:
Error:Error converting bytecode to dex:
Cause: com.Android.dx.cf.iface.ParseException: name already added: string{"a"}
Error:Execution failed for task ':app:transformClassesWithDexForRelease'.
> com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: Java.util.concurrent.ExecutionException: com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/Java'' finished with non-zero exit value 1
J'ai essayé avec toutes les versions de bibliothèques de support possibles et le même résultat.
J'ai essayé avec Java 1.6 et 1.7 et rien n'a changé!
que peut être une autre solution possible s'il vous plaît?
J'ai également fait face à la même erreur, et je cherchais dans de nombreuses réponses existantes avec des dépendances en double ou multidex, etc., mais aucune ne fonctionnait. (Android studio 2.0 Beta 6, Outils de compilation 23.0.2, pas de multidex)
Il s'est avéré qu'une fois, j'ai utilisé un nom de paquet qui ne correspond pas à celui qui est décrit dans le manifeste.
Dans d'autres lignes de ParseException, j'ai découvert que j'avais des fichiers dans différents modules avec des noms/chemins de paquetages similaires pouvant éventuellement être en conflit avec le dexer.
Exemple:
Module A: com.example.xyz.ticketing.modulea.Interface.Java
Module B: com.example.Xyz.ticketing.moduleb.Enumerations.Java
Module C: A des dépendances sur A et B
Après avoir mis "Xyz" en minuscule, le dexer était à nouveau en ordre.
Comment savoir:
Quand j'ai regardé à travers la sortie de la console Gradle pour le ParseExceptions qui ressemble à ceci:
AGPBI: {"kind": "error", "text": "Erreur lors de la conversion du bytecode en dex:\nCause: Java.lang.RuntimeException: Exception lors de l'analyse de classes"
J'ai fait défiler près de la fin de l'exception. Il y a une partie dans cette longue ligne d'exception qui mentionne la cause:
Causé par: com.Android.dx.cf.iface.ParseException: nom de classe (at/dummycompany/mFGM/hata/hwp/BuildConfig) ne correspond pas à chemin (at/dummycompany/mfgm/hata/hwp/BuildConfig.class )
De cette façon, j'ai découvert où chercher les noms/chemins d'accès des paquets manquants
il suffit de faire Build > Clean Project
Attendre le nettoyage se termine puis Build > Rebuild Project
, et l'erreur a disparu c'est tout.
La solution pour moi consiste à modifier le fichier Build Gradle . J'ai découvert que le problème est une surcharge du GC (mémoire insuffisante).
Alors j'ajoute du code à ma configuration
Android {
dexOptions {
incremental = true;
preDexLibraries = false
javaMaxHeapSize "2g"
}
}
Il y a un autre problème avec proguard . Vous devez également définir minifyEnabled sur false.
J'avais un nom de package incorrect dans l'une des classes d'assistance, d'où le problème. Vérifiez toutes les classes et assurez-vous que le nom du package est correct.
Ma solution était différente, j'ai été ajouté ces lignes dans proguard-rules.pro
-optimizationpasses 5
-overloadaggressively
-repackageclasses ''
-allowaccessmodification
Assurez-vous de tout mettre à jour à partir du gestionnaire de SDK.
Si targetSdkVersion est une version 25 ou supérieure et que vous utilisez JDK 8, vous devez ajouter dans votre fichier build.gradle ce qui suit:
Android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Plus d'infos: https://stackoverflow.com/a/37294741
Supprimer -overloadaggressively
de mon proguard-rules.pro
a corrigé cela pour moi.
Sinon, l'ajout de -useuniqueclassmembernames
l'a également corrigé.
J'ai essayé ./gradlew clean build
, invalider le cache de studio, redémarrer l'ordinateur. Mais ce qui a résolu le problème, c'est désactiver Instant run
Dans mon cas, il y a un cours que j'ai fait que je n'ai pas encore utilisé. Je dois donc supprimer la classe ou utiliser la classe.
Si vous rencontrez cette erreur, votre paquet dans manifest diffère certainement des autres que vous avez définis dans vos classes. Faites attention.
J'ai fait face à la même erreur. Apparaît que le fait de renommer un paquet en minuscule et une classe avait le libellé précédent.
Vous avez ce problème lorsque vous utilisez l'activité Android studio template for Login.
J'ai sélectionné le paquet "activité" dans lequel mettre mon activité.
Le modèle dans AndroidManifest.xml , au lieu de .activity.LoginActivity
, utilisait le .LoginActivity
, provoquant ainsi l’erreur.
J'ai rencontré le même problème aujourd'hui et le problème était que dans mon Constants.Java classé j'ai défini (par erreur)
public static final class Checkout {
.......
}
et
public static final class CHECKOUT {
......
}