web-dev-qa-db-fra.com

Erreur: Niveau d'exécution: testé à la tâche ': app: preDexDebug'

J'avais un pot créé par moi-même à partir d'un autre projet importé comme bibliothèque dans mon autre projet. Lorsque j'ai changé de code dans ce projet et exporté un nouveau fichier jar pour remplacer l'ancien, je ne peux plus exécuter mon application. Je ne reçois que l'erreur suivante:

enter image description here

J'ai essayé de supprimer et d'ajouter et d'ajouter en tant que dépendance, en ajoutant en tant que bibliothèque. Rien ne semble fonctionner. J'ai également fait une construction propre et une reconstruction.

10
Kersch

Nous avons vu ce problème dans le passé, lorsque notre projet était compiler avec une version de Java différente de celle utilisée pour compiler la bibliothèque.} _Le nombre magique est simplement utilisé pour identifier les fichiers de classe , le problème est donc la version Java (0034.0000 == Java 8).

La solution la plus simple consiste à cibler Java 6, ce qui peut nécessiter de supprimer la syntaxe la plus récente de votre code. Dans notre cas, le projet et la bibliothèque étaient les nôtres. Nous avons donc pu ajouter les éléments suivants pour forcer la version de Java dont nous avions besoin:

Bibliothèques Android

pour les bibliothèques Android, ajoutez ce code à l'objet d'extension "Android":

Android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }
    ...
}

Bibliothèques Java

pour les bibliothèques Java, ajoutez ce code au "niveau supérieur":

apply plugin: 'Java'

version '1.8.1'
group   'com.yourcompany.package'

sourceCompatibility = JavaVersion.VERSION_1_6   //these two lines
targetCompatibility = JavaVersion.VERSION_1_6   //are the only ones that matter

REMARQUE: les deux dernières lignes sont les seules qui importent. J'ai ajouté les autres simplement pour montrer à quoi ces lignes appartiennent, en ce qui concerne le reste de votre fichier de construction Gradle.

25
gMale

Pour nous, cela était dû à la version des outils de génération du SDK Android. Vous avez le problème sur v23.x, mais pas v22.x. Vous devez désinstaller v23 pour que Cordova sélectionne v22.

Peut-être un symptôme plutôt qu'une cause, mais cela peut décoller une personne dans la même situation.

1
Dan Caseley

ajouter:

sourceCompatibility = JavaVersion.VERSION_X_X
targetCompatibility = JavaVersion.VERSION_X_X

dans le fichier Gradle du projet Android et le fichier Gradle de la bibliothèque Java a fonctionné pour moi.

Désolé, je l'aurais +1, mais je n'ai pas assez de réputation

0
jwinwood

Bien que votre problème semble résolu, je me suis retrouvé ici avec une erreur similaire (lors de la création des exemples à partir de developer.Android.com). Au cas où cela serait utile aux autres, j'ai pu le résoudre en définissant Java_HOME sur la valeur appropriée. Dans mon cas c'était:

export Java_HOME=/usr/lib/jvm/Java-6-openjdk-AMD64
0
user1794469