いつ gradle build
ing私のプロジェクト、私はこのエラーを得ています:
失敗:ビルドは例外で失敗しました。
どこ:
ビルドファイル 'App/build.gradle'行:45何が悪かったのか:
プロジェクト「:App」の評価中に問題が発生しました。
メソッドJava.io.File#のあいまいなメソッドオーバーロード。
プロトタイプが重複しているため、[null、class Java.lang.String]に対して呼び出すメソッドを解決できません:
[クラスJava.lang.String、クラスJava.lang.String]
[クラスJava.io.File、クラスJava.lang.String]
上記の行は最初のproguardFile
ルールです:
buildTypes {
release {
debuggable false
jniDebugBuild false
signingConfig signingConfigs.(System.getenv("SIGNING_CONFIG") ?: "release")
runProguard true
proguardFile getDefaultProguardFile('proguard-Android-optimize.txt')
proguardFile 'proguard-rules.txt'
}
}
持っていませんlocal.properties
ファイル、またはAndroid Studio。
私のプロジェクトの何が問題になっていますか?このエラーを修正するにはどうすればよいですか?
2014年9月にエラーメッセージが変更されました。 明確になり、GradleがSDKを見つけられないことが問題であることを明示的に指摘しました。残りの答えは、Gradleプラグインの古いバージョン(<0.13)にも適用されます。
これは、GradleがSDKの場所を見つけることができず、デフォルトのProguardファイルの場所を取得するなど、Android SDKを必要とする何かを実行すると失敗するためです。
実際、その行を一時的にコメントアウトすると、Gradleはこのことを通知します。
SDKの場所が見つかりません。 local.propertiesファイルのsdk.dirまたはAndroid_HOME環境変数を使用して場所を定義します。
あなたはそれを修正することができます:
local.properties
でSDKの場所を定義することにより、そのファイルにsdk.dir=/path/to/sdk
を追加するだけです。
SDKの場所を環境変数Android_HOME
に設定することにより、gradle
の前にAndroid_HOME=/path/to/sdk
を追加して、環境変数を設定する必要があります。
例:Android_HOME=/path/to/sdk gradle build
。
バージョン管理システムを使用する場合、Gradleを使用する必要があるたびに手動で環境変数を設定するのは煩わしいので、自分のlocal.properties
でローカルに場所を設定しても問題ありません。リポジトリにチェックインしないでください。
私は毎日これを行っており、次のコマンドを発行してlocal.propertiesを作成しています(-pはマニフェストファイルへのパス、-tは現在のターゲットです)。
Android project update -p . -t Android-19
Gradleビルドの場合:
Android project update .p ./YourApp/src/main/ -t Android-19
cp ./YourApp/src/main/local.properties ./local.properties # or ln if you feel so
私の場合、Android NDKとSDKの場所をAndroid Studioプロジェクトのモジュール設定で設定しました。