web-dev-qa-db-ja.com

Ionic St​​udio 3.0への更新後にAndroidアプリを実行できません

これが私のIonic情報です

cliパッケージ:(/ Users/billb/dev/customer-mkt-app/node_modules)

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

グローバルパッケージ:

cordova (Cordova CLI) : 7.0.1

ローカルパッケージ:

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

システム:

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

環境変数:

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

その他:

backend : pro

アプリを正常にビルドできます。 Android St​​udioで開こうとすると、いくつかのエラーが発生します。主にgradle同期の失敗に関するものです。メッセージコンソールには5つのエラーがあります。

':@ debug/compileClasspath'の依存関係を解決できません:プロジェクト:CordovaLibを解決できませんでした。プロジェクトを解決できませんでした:CordovaLib。

必須:プロジェクト:

プロジェクト:構成 'debugCompile'から構成 'debug'への依存関係を宣言しますが、この依存関係はプロジェクト>:CordovaLibの記述子で宣言されていません。


':@ debugAndroidTest/compileClasspath'の依存関係を解決できません:プロジェクト:CordovaLibを解決できませんでした。プロジェクトを解決できませんでした:CordovaLib。

必須:プロジェクト:

プロジェクト:構成 'debugCompile'から構成 'debug'への依存関係を宣言しますが、この依存関係はプロジェクト>:CordovaLibの記述子で宣言されていません。


':@ debugUnitTest/compileClasspath'の依存関係を解決できません:プロジェクト:CordovaLibを解決できませんでした。プロジェクトを解決できませんでした:CordovaLib。

必須:プロジェクト:

プロジェクト:構成「debugCompile」から構成「debug」への依存関係を宣言しますが、これはプロジェクトの記述子で宣言されていない>:CordovaLib。


':@ release/compileClasspath'の依存関係を解決できません:プロジェクト:CordovaLibを解決できませんでした。

プロジェクトを解決できませんでした:CordovaLib。必須:プロジェクト:

プロジェクト:構成「releaseCompile」から構成「release」への依存関係を宣言しますが、これはプロジェクト:CordovaLibの記述子で宣言されていません。


':@ releaseUnitTest/compileClasspath'の依存関係を解決できません:プロジェクト:CordovaLibを解決できませんでした。

プロジェクトを解決できませんでした:CordovaLib。必須:プロジェクト:

プロジェクト:構成「releaseCompile」から構成「release」への依存関係を宣言しますが、これはプロジェクト:CordovaLibの記述子で宣言されていません。

私はこれが何を意味するのか本当に知りません、そして、Googleは本当の助けを何も示しませんでした。ここで何をする必要がありますか?

注:これを投稿した後にこれを発見しました。他の人の助けになる場合に備えて、ここで中継します。

Android St​​udio 3にアップグレードしないでください

26
Bill

Build.gradleファイルで以下の行をコメントしました。

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

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

追加された:

compile project(':CordovaLib')

これは私のために働いた。

103
Manmohan Pal

Cordovaを使用している場合、build.gradleが自動的に生成され、次にプロジェクトをビルドするときに、上記の承認済みの回答の変更が、機能しない古いものに上書きされます。

したがって、platforms/Android/cordova/lib/builder/GradleBuiler.jsを編集して、136〜139行目をコメントアウトし、次の行を追加します。

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

Android St​​udio 3.0.1でこの種のエラーが発生した場合:

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

build.gradleファイルに移動->依存関係を見つけて、このように変更します

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

これは既知の問題であり、関連するjiraの問題を見つけることができます here と根本的な問題は this this であり、両方とも「進行中」です。そして、すでに githubでのプルリクエスト があり、試してみることができますが、すでに動作するバージョンであることを約束することはできません。あなたがそれを試してみたいのであれば、このようにインストールすることができます:

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

これをAndroid build .gradle依存関係に追加します。それで全部です。

compile project(':CordovaLib')

例えば:

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

OK、解決策を見つけました。

Cordova-Android:6.3.0を使用していました。バージョンを7.1.0に更新し、config.xmlのこの行を変更しました

以前は:

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

今私は使用しています:

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

このように、ionic cordova run Androidは、build.gradleの行を変更せずに再び機能します。

2

だから、私はこれと戦うために2日間を費やし、半手動の解決策を思いついた。

Gradleは、移行のための猶予期間なしで依存形式を根絶することを決定したため、このようなことを強制されます。

(Linuxでの手順。Windowsの場合、最後のステップで7Zipまたは同様のものが必要です)

ユーザーのホームディレクトリから.cordova/lib/npm_cache/cordova-Androidに移動します。
そこには、バージョン番号が付いた1つ以上のフォルダーがあります。
通常、最新バージョンのみが実行されます。
それを開く。
packageディレクトリを削除しますが、package.tgzファイルはnot削除します。
package.tgzファイルを解凍してから削除するか、バックアップ場所に移動します。 (後で再パッケージ化したくない余分なファイルがいくつか生成されます)
ファイルpackage/bin/templates/cordova/lib/plugin-build.gradleを編集し、dependencies内でこれらの行を削除します

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

で置き換えます

implementation project(path: ":CordovaLib")

パッケージディレクトリをアーカイブします。 Linuxでは、短いコマンドはtar czf package.tgz packageです。 Windowsでは、7Zipで.tar.gzアーカイブを作成し、.tgzに名前を変更する必要があります。

その後、一部のプラグインが明示的に古い宣言形式を使用し、更新する必要がない限り、古いバージョンで動作するクリーンリポジトリでcordova prepareを実行すると再び動作します( example

2
coladict

これは私のgradle.build設定です:

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
}

しかし、私はまだこのエラーを受け取りました:

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

また、これはCordovaプロジェクトなので、gradle.buildファイルは自動生成されるため、変更できません。

1
artuska

この種の問題に直面しているときは、gradleバージョンを2.2.3に格下げし、動作するプロジェクトを再同期するだけです。

構成「コンパイル」は廃止され、「実装」に置き換えられています。2018年末に削除されます。

「コンパイル」を「実装」に置き換えるだけです

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