web-dev-qa-db-fra.com

Impossible d'exécuter l'application Ionic après la mise à jour vers Android Studio 3.0

Voici mes informations ioniques

packages cli: (/ Users/billb/dev/customer-mkt-app/node_modules)

@ionic/cli-utils  : 1.15.2
ionic (Ionic CLI) : 3.15.2

forfaits globaux:

cordova (Cordova CLI) : 7.0.1

forfaits locaux:

@ionic/app-scripts : 3.0.1
Cordova Platforms  : Android 6.2.3 ios 4.4.0
Ionic Framework    : ionic-angular 3.3.0

Système:

Android SDK Tools : 26.1.1
ios-deploy        : 1.9.2
Node              : v6.11.5
npm               : 3.10.10
OS                : macOS Sierra
Xcode             : Xcode 9.0.1 Build version 9A1004

Variables d'environnement:

Android_HOME : /Users/billb/Library/Android/sdk

Misc:

backend : pro

Je peux réussir à créer l'application. Lorsque j'essaie de l'ouvrir dans Android Studio, je reçois une poignée d'erreurs, principalement autour d'une défaillance de synchronisation. Voici les 5 erreurs dans la console Messages.

Impossible de résoudre la dépendance pour ': @ debug/compileClasspath': impossible de résoudre le projet: CordovaLib . Impossible de résoudre le projet: CordovaLib.

Requis par: projet:

Projet: déclare une dépendance de la configuration 'debugCompile' à la configuration 'debug' qui n'est pas déclarée dans le descripteur du projet>: CordovaLib.


Impossible de résoudre la dépendance pour ': @ debugAndroidTest/compileClasspath': Impossible de résoudre le projet: CordovaLib . Impossible de résoudre le projet: CordovaLib.

Requis par: projet:

Projet: déclare une dépendance de la configuration 'debugCompile' à la configuration 'debug' qui n'est pas déclarée dans le descripteur du projet>: CordovaLib.


Impossible de résoudre la dépendance pour ': @ debugUnitTest/compileClasspath': impossible de résoudre le projet: CordovaLib . Impossible de résoudre le projet: CordovaLib.

Requis par: projet:

Projet: déclare une dépendance de la configuration 'debugCompile' à la configuration 'debug' qui n'est pas déclarée dans le descripteur de projet> : CordovaLib.


Impossible de résoudre la dépendance pour ': @ release/compileClasspath': Impossible de résoudre le projet: CordovaLib.

Impossible de résoudre le projet: CordovaLib . Requis par: projet:

Projet: déclare une dépendance de la configuration 'releaseCompile' à la configuration 'release' qui n'est pas déclarée dans le descripteur du projet: CordovaLib.


Impossible de résoudre la dépendance pour ': @ releaseUnitTest/compileClasspath': Impossible de résoudre le projet: CordovaLib.

Impossible de résoudre le projet: CordovaLib . Requis par: projet:

Projet: déclare une dépendance de la configuration 'releaseCompile' à la configuration 'release' qui n'est pas déclarée dans le descripteur du projet: CordovaLib.

Je ne sais vraiment pas ce que cela signifie et Google n'a apporté aucune aide réelle. Que dois-je faire ici?

Note: a découvert ceci après avoir posté ceci. Relayez-le ici au cas où cela aiderait quelqu'un d'autre.

Ne pas mettre à niveau vers Android Studio 3

21
Bill

J'ai commenté les lignes ci-dessous dans le fichier build.gradle:

//debugCompile project(path: 'CordovaLib', configuration: 'debug') 

//releaseCompile project(path: 'CordovaLib', configuration: 'release')

et ajouté:

compile project(':CordovaLib')

Cela a fonctionné pour moi.

93
Manmohan Pal

Si vous utilisez Cordova, le fichier build.gradle est généré automatiquement et lors de la construction suivante du projet, la modification de la réponse acceptée ci-dessus est remplacée par l'ancienne qui ne fonctionne pas.

Donc, éditez les plateformes/Android/cordova/lib/builder/GradleBuiler.js Commentez les lignes 136-139 et ajoutez la ligne suivante

/*depsList += '    debugCompile(project(path: "' + libName + '", configuration: "debug"))';
insertExclude(p);
depsList += '    releaseCompile(project(path: "' + libName + '", configuration: "release"))';
insertExclude(p);
    */
    depsList += "    compile project(':CordovaLib')";
    insertExclude(p);
12
andymoyle

Si vous obtenez ce type d'erreur dans Android Studio 3.0.1:

Unable to resolve dependency for :@debug/compileClasspath’: Could not resolve project :CordovaLib.

Allez dans le fichier build.gradle -> trouvez les dépendances et changez-le comme ceci

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START
    //debugCompile(project(path: "CordovaLib", configuration: "debug"))
    //releaseCompile(project(path: "CordovaLib", configuration: "release"))
    compile project(':CordovaLib')
    // SUB-PROJECT DEPENDENCIES END
}
11
Damir Varevac

C’est un problème connu, vous pouvez trouver le problème jira associé ici et le problème sous-jacent est celui-ci et les deux sont «en cours». Et il y a déjà une requête pull sur github que vous pouvez essayer mais je ne peux pas vous promettre que c'est déjà une version fonctionnelle. Vous pouvez l'installer comme ceci si vous voulez essayer ça:

cordova platform add https://github.com/infil00p/cordova-Android.git#StudioThreeFix
10
David

Ajoutez ceci dans les dépendances de construction .gradle Android. C'est tout.

compile project(':CordovaLib')

Par exemple:

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START
    //debugCompile(project(path: "CordovaLib", configuration: "debug"))
    //releaseCompile(project(path: "CordovaLib", configuration: "release"))
    compile project(':CordovaLib')
    compile "com.Android.support:support-v4:24.1.1+"
    compile "com.google.Android.gms:play-services-analytics:+"
    // SUB-PROJECT DEPENDENCIES END
}
4
user9025015

Alors, je viens de passer deux jours à lutter contre cela et à proposer une solution semi-manuelle.

Parce que Gradle a décidé de déraciner son format de dépendance sans période de grâce pour la migration, nous sommes obligés de procéder de la sorte.

(Instructions sous Linux. Pour Windows, vous auriez besoin de 7Zip ou de quelque chose de similaire pour la dernière étape)

Depuis votre répertoire personnel, allez à .cordova/lib/npm_cache/cordova-Android.
Il devrait y avoir un ou plusieurs dossiers avec des numéros de version.
Généralement, seule la dernière version est exécutée.
Ouvrez-le.
Supprimez le répertoire package, mais not le fichier package.tgz.
Décompressez le fichier package.tgz, puis supprimez-le ou déplacez-le vers un emplacement de sauvegarde. (Il y a des fichiers supplémentaires générés que nous ne voulons pas reconditionner plus tard)
Editez le fichier package/bin/templates/cordova/lib/plugin-build.gradle et dans dependencies supprimez ces lignes

debugCompile project(path: ":CordovaLib", configuration: "debug")
releaseCompile project(path: ":CordovaLib", configuration: "release")

Les remplacer par

implementation project(path: ":CordovaLib")

Archiver le répertoire du paquet. Sous Linux, la commande courte est tar czf package.tgz package. Sous Windows, vous devez créer une archive .tar.gz avec 7Zip et le renommer en .tgz.

Après cela, exécuter cordova prepare dans un référentiel propre fonctionnant avec les anciennes versions fonctionnera à nouveau, à moins que certains plug-ins n'utilisent explicitement l'ancien format de déclaration et nécessitent une mise à jour ( exemple )

2
coladict

Ok, j'ai trouvé une solution.

J'utilisais cordova-Android: 6.3.0. J'ai mis à jour la version 7.1.0 puis modifié cette ligne dans le fichier config.xml

avant était:

<preference name="Android-minSdkVersion" value="16" />

Maintenant j'utilise:

<preference name="Android-minSdkVersion" value="19" />

De cette façon, ionic cordova run Android fonctionne à nouveau sans avoir à changer ces lignes dans build.gradle!

1

C'est ma gradle.build config:

dependencies {
    implementation fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START
    implementation(project(path: "CordovaLib"))
    implementation(project(path: "cordova-social-ok:odnoklassniki-Android-sdk")){
        exclude module:("CordovaLib")
    }
    implementation(project(path: "cordova-social-vk:vksdk_library")){
        exclude module:("CordovaLib")
    }
    compile "com.onesignal:OneSignal:3.7.1"
    compile "com.facebook.Android:facebook-Android-sdk:4.+"
    // SUB-PROJECT DEPENDENCIES END
}

Mais j'ai toujours cette erreur:

* What went wrong:
Could not determine the dependencies of task ':cordova-social-ok:odnoklassniki-Android-sdk:compileReleaseAidl'.
> Could not resolve all task dependencies for configuration ':cordova-social-ok:odnoklassniki-Android-sdk:releaseCompileClasspath'.
   > Could not resolve project :CordovaLib.
     Required by:
         project :cordova-social-ok:odnoklassniki-Android-sdk
      > Project :cordova-social-ok:odnoklassniki-Android-sdk declares a dependency from configuration 'releaseCompile' to configuration 'release' which is not declared in the descriptor for project :CordovaLib.

En outre, ceci est un projet Cordova, donc le fichier gradle.build est généré automatiquement et je ne peux pas le modifier.

1
artuska

Lorsque vous faites face à ce type de problème, il vous suffit de déclasser la version d'évaluation en version 2.2.3 et de synchroniser à nouveau le projet.