回答は遅いですが、これはGoogleにとって難しい問題(単一引用符)であり、何が起こっているのかは明確ではありません。私はまだコメントしたり、範囲(または3つのリンクを投稿)を求めたりする評判がありません。そのため、この回答は少し面倒かもしれません。
すばやく回答するために、プロジェクトに複数のGradleプラグインを含めることができます。
Gradleラッパーとプラグインの同期
問題は、破損したIMLファイルから始まっているようです。Android Studio(プロジェクトを閉じてから再び開くまで)がIMLがなくなった(そうではなかった)と文句を言い始めたため、モジュールを削除する必要がありますが、これは拒否しました。それは持続し、AS 0.8.7(カナリアチャネル)にアップグレードして、OPの問題(タスク ''がルートプロジェクトに見つかりません)で立ち往生しました。これはビルドを完全にブロックしたので、Gradleを掘り下げる必要がありました。
OSXでの修復手順(Windows用に調整してください):
- Android Studioを0.8.7にアップグレードする
- 設定| アップデート| 「ベータチャネル」を「カナリアチャネル」に切り替え、[今すぐ確認]を実行します。
- これをスキップできる場合があります。
Gradleラッパーをチェックしました(現在は1.12.2。現時点では2.0を使用しないでください)。
特定のバージョンが必要ない場合は、サポートされている最新のディストリビューションを使用してください
$ vi ~/project/gradle-wrapper.properties
...
distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
これは、Preferences | Android Studioで設定できます。Gradle(ただし0.8.7では「無効な場所」エラーが発生していました)。
- 「ラッパー」は、Android StudioプロジェクトごとのGradleのコピーにすぎません。これにより、Gradle 2をOSに、異なるバージョンをプロジェクトに含めることができます。Android開発者のドキュメントで、ここで説明しています。
- 次に、プラグインの build.gradleファイルを調整します。Gradleプラグインのバージョンは、プロジェクト全体のディストリビューション/ラッパーバージョンと互換性がある必要があります。ツールのドキュメント(tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements)は少し古くなっているので、プラグインのバージョンを低くしすぎて(0.8.0のように)、 Android Studioは、ラッパーの許容範囲でエラーをスローします。
たとえば、build.gradleには次のプラグインがあります。
dependencies {
classpath "com.android.tools.build:gradle:0.12.+"
}
次のように、正確なバージョンに切り替えてみてください。
dependencies {
classpath "com.android.tools.build:gradle:0.12.2"
}
(それぞれのバージョンから変更するバージョンを記録した後)、プロジェクト内のすべてのbuild.gradleファイルが同じプラグインバージョンを取得することを確認します。「+」を維持すると機能しますが(0.12.0、0.12.1、0.12.2などの場合)、GoogleのVolleyライブラリ(元はgradle:0.8。+)とメインプロジェクト(元は0.12。 +)修正バージョン:gradle:0.12.2。
その他のチェック
同じプロジェクトに2つのAndroidアプリケーションモジュールがないことを確認します。
これは最終的なソリューション(上記の異なるGradleバージョン)と相互作用し、
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define (various classes)
チェックするには、ビルド| Make Projectは、どのアプリケーションを作成するかを尋ねるウィンドウをポップアップするべきではありません。
- キャッシュを無効にする
- ファイル| キャッシュの無効化/再起動(stackoverflow.com/a/19223269/513413)
- ステップ2が機能しない場合は、〜/ .gradle /(www.wuttech.com/index.php/tag/groovy-lang-closure/)を削除します
- Android Studioを終了します
- $ rm -rf〜/ .gradle /
- Android Studioを起動して同期します。
- ツール| Android | Gradleファイルとプロジェクトを同期する
- あきらめる前に、このシーケンス全体(quit ... sync)を数回繰り返します。
- プロジェクトをきれいにする
これを見たら...
最近のビルドでは、ひどい失敗(例外のページ)が何度も発生しましたが、数秒以内にメッセージがクリアされ、ビルドは成功し、アプリがデプロイされました。説明できず、アプリが機能したため、プロジェクトに2つのGradleプラグインがあることに気づきませんでした。したがって、Gradleプラグインは互いに戦ったと思います。1つはクラッシュし、もう1つは状態を失い、エラーを報告しました。
時間があれば、1時間のビデオ「A Gradle Introduction to Gradle」(www.youtube.com/watch?v=OFUEb7pLLXw)が、Gradleのビルドファイル、タスク、ビルドの決定などへの取り組みに本当に役立ちました。
免責事項
私は別のキャリアを働いた後、外国のOSでこのスタック全体を学びます...同時にそしてプレッシャーの下で。ここ数か月の間に、私はAndroidが持っていると思うあらゆる壁にぶつかりました。私はかなり頻繁にここにいて、これは私の最初の投稿です。これは難しい修正だと思ったので、私の回答の質が、それを達成するのに苦労したことを反映していることを心からお詫びします。