it-swarm.com.de

Ionic-App kann nach dem Update auf Android Studio 3.0 nicht ausgeführt werden

Hier ist meine ionische Info

cLI-Pakete: (/ Benutzer/billb/dev/customer-mkt-app/node_modules)

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

globale pakete:

cordova (Cordova CLI) : 7.0.1

lokale Pakete:

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

System:

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

Umgebungsvariablen:

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

Sonstiges:

backend : pro

Ich kann die App erfolgreich erstellen. Wenn ich versuche, es in Android Studio zu öffnen, erhalte ich eine Handvoll Fehler, meistens um einen gradle Sync-Fehler. Hier sind die 5 Fehler in der Nachrichtenkonsole.

Abhängigkeit von ': @ debug/compileClasspath' konnte nicht aufgelöst werden: Projekt konnte nicht aufgelöst werden: CordovaLib . Projekt konnte nicht aufgelöst werden: CordovaLib.

Benötigt von: Projekt:

Projekt: Deklariert eine Abhängigkeit von der Konfiguration 'debugCompile' zur Konfiguration 'debug', die nicht im Deskriptor für Projekt>: CordovaLib deklariert ist.


Abhängigkeit von ': @ debugAndroidTest/compileClasspath' konnte nicht aufgelöst werden: Projekt: CordovaLib ..__ konnte nicht aufgelöst werden. Projekt konnte nicht aufgelöst werden: CordovaLib.

Benötigt von: Projekt:

Projekt: Deklariert eine Abhängigkeit von der Konfiguration 'debugCompile' zur Konfiguration 'debug', die nicht im Deskriptor für Projekt>: CordovaLib deklariert ist.


Abhängigkeit von ': @ debugUnitTest/compileClasspath' konnte nicht aufgelöst werden: Projekt: CordovaLib ..__ konnte nicht aufgelöst werden. Projekt konnte nicht aufgelöst werden: CordovaLib.

Benötigt von: Projekt:

Projekt: Deklariert eine Abhängigkeit von der Konfiguration 'debugCompile' zur Konfiguration 'debug', die im Deskriptor für Projekt> .__ nicht angegeben ist. : CordovaLib.


Abhängigkeit von ': @ release/compileClasspath' konnte nicht aufgelöst werden: Projekt: CordovaLib konnte nicht aufgelöst werden.

Projekt konnte nicht aufgelöst werden: CordovaLib . Benötigt von: Projekt:

Projekt: Deklariert eine Abhängigkeit von der Konfiguration 'releaseCompile' zur Konfiguration 'release', die nicht im Deskriptor für das Projekt: CordovaLib deklariert ist.


Abhängigkeit von ': @ releaseUnitTest/compileClasspath' kann nicht aufgelöst werden: Projekt konnte nicht aufgelöst werden: CordovaLib.

Projekt konnte nicht aufgelöst werden: CordovaLib . Benötigt von: Projekt:

Projekt: Deklariert eine Abhängigkeit von der Konfiguration 'releaseCompile' zur Konfiguration 'release', die nicht im Deskriptor für das Projekt: CordovaLib deklariert ist.

Ich weiß wirklich nicht, was das bedeutet und Google hat keine wirkliche Hilfe gefunden. Was muss ich hier machen?

Hinweis: hat dies entdeckt, nachdem Sie dies gepostet haben. Hier weitergeben, falls es jemand anderem helfen wird.

Kein Upgrade auf Android Studio 3

21
Bill

Ich habe die folgenden Zeilen in der Datei build.gradle kommentiert:

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

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

und hinzugefügt:

compile project(':CordovaLib')

Das hat bei mir funktioniert.

93
Manmohan Pal

Wenn Sie Cordova verwenden, wird build.gradle automatisch generiert. Wenn Sie das nächste Mal das Projekt erstellen, wird die Änderung der akzeptierten Antwort oben auf die alte überschrieben, die nicht funktioniert.

Bearbeiten Sie daher die Plattformen/Android/cordova/lib/builder/GradleBuiler.js Kommentieren Sie die Zeilen 136-139 aus und fügen Sie die nächste Zeile hinzu

/*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

Wenn Sie diese Art von Fehler in Android Studio 3.0.1 erhalten:

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

Gehen Sie zu build.gradle Datei -> Abhängigkeiten finden und ändern Sie es so

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

Dies ist ein bekanntes Problem. Sie finden das verwandte Jira-Problem hier und das zugrunde liegende Problem ist Dieses und beide sind in Bearbeitung. Und es gibt bereits eine Pull-Anfrage auf github , die Sie ausprobieren können, aber ich kann Ihnen nicht versprechen, dass es bereits eine funktionierende Version ist. Sie können es so installieren, wenn Sie das ausprobieren möchten:

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

Fügen Sie dies in Android Build. Das ist alles.

compile project(':CordovaLib')

Zum Beispiel:

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

Also habe ich nur zwei Tage damit zu kämpfen gehabt und eine halbmanuelle Lösung gefunden.

Da sich Gradle entschlossen hat, das Abhängigkeitsformat ohne Gnadenfrist für die Migration zu entfernen, müssen wir dies tun.

(Anweisungen unter Linux. Für Windows benötigen Sie für den letzten Schritt einen 7Zip oder ähnliches)

Gehen Sie in Ihrem Benutzerverzeichnis zu .cordova/lib/npm_cache/cordova-Android.
Dort sollte es einen oder mehrere Ordner mit Versionsnummern geben.
Normalerweise wird nur die neueste Version ausgeführt.
Öffne es.
Löschen Sie das Verzeichnis package, aber nicht die package.tgz-Datei.
Entpacken Sie die package.tgz-Datei, löschen Sie sie oder verschieben Sie sie an einen Sicherungsort. (Es werden einige zusätzliche Dateien generiert, die wir später nicht erneut packen möchten.)
Bearbeiten Sie die Datei package/bin/templates/cordova/lib/plugin-build.gradle und entfernen Sie diese Zeilen in dependencies

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

Ersetzen Sie sie durch

implementation project(path: ":CordovaLib")

Archivieren Sie das Paketverzeichnis. In Linux lautet der kurze Befehl tar czf package.tgz package. Unter Windows müssen Sie ein .tar.gz-Archiv mit 7Zip erstellen und in .tgz umbenennen.

Wenn ein cordova prepare in einem sauberen Repository ausgeführt wird, das mit den alten Versionen zusammenarbeitete, funktioniert es wieder, sofern nicht einige Plug-Ins explizit das alte Deklarationsformat verwenden und aktualisiert werden müssen ( example ).

2
coladict

Ok, ich habe eine Lösung gefunden.

Ich habe Cordova-Android verwendet: 6.3.0. Ich habe die Version auf 7.1.0 aktualisiert und diese Zeile in der config.xml geändert

vorher war:

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

Jetzt benutze ich:

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

Auf diese Weise arbeitet ionic cordova run Android funktioniert wieder, ohne diese Zeilen in build.gradle ändern zu müssen!

1

Dies ist mein 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
}

Aber ich habe immer noch diesen Fehler bekommen:

* 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.

Dies ist auch ein Cordova-Projekt. Die gradle.build-Datei wird automatisch generiert, sodass ich sie nicht ändern kann.

1
artuska

Wenn Sie mit dieser Art von Problem konfrontiert sind, müssen Sie lediglich die Gradle-Version auf 2.2.3 herabstufen und das Projekt erneut synchronisieren.

Die Konfiguration 'Übersetzen' ist veraltet und wurde durch 'Implementieren' ersetzt. Sie wird Ende 2018 entfernt.

Ersetzen Sie einfach 'kompilieren' durch 'implementieren'

dependencies {
    // SUB-PROJECT DEPENDENCIES START
    //debugCompile(project(path: "CordovaLib", configuration: "debug"))
    //releaseCompile(project(path: "CordovaLib", configuration: "release"))
    implementation project(':CordovaLib')
    // SUB-PROJECT DEPENDENCIES END
}
0
metamagikum