web-dev-qa-db-ja.com

Android St​​udioビルドが失敗し、「タスク ''がルートプロジェクト 'MyProject'に見つかりません。」

ラップトップを変更してAndroid St​​udioバージョン0.8.2に更新した後にプロジェクトをビルドしようとすると、このエラーが発生します。

失敗:ビルドは例外で失敗しました。

  • 問題の原因:ルートプロジェクト 'MyProject'にタスク ''が見つかりません。

  • 試してください:gradleタスクを実行して、使用可能なタスクのリストを取得します。 --stacktraceオプションを使用して実行し、スタックトレースを取得します。より多くのログ出力を取得するには、-infoまたは--debugオプションを使用して実行します。

ビルド失敗

私のGradleファイルは次のとおりです。

トップレベルsettings.gradle

include ':MyProject'

myProjectのbuild.gradle:

apply plugin: 'com.Android.application'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "com.Android.tools.build:gradle:0.12.+"
    }
}
repositories {
    mavenCentral()
}

Android {
    compileSdkVersion 20
    buildToolsVersion "20"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 20
    }
}

dependencies {
    compile 'de.timroes.Android:EnhancedListView:0.3.0@aar'
    compile 'com.nineoldandroids:library:2.4.0'
}

最上位のbuild.gradleが空です

83
TomRichardson

回答が遅くなりましたが、これはGoogleにとって難しいものであり(一重引用符)、何が起こっているのか明確ではありません。私はまだコメントしたり、スコープを要求したり(3つのリンクを投稿したり)する評判がありません。

すばやく答えるために、プロジェクトに複数のGradleプラグインがある場合があります。

Gradleラッパーとプラグインを同期する

私の問題は、破損したIMLファイルで始まるように見えました。 Android St​​udio(プロジェクトを閉じてから再び開くまで)がIMLがなくなった(そうではなかった)ので、モジュールを削除する必要があるとの不満を言い始めました。それは持続し、AS 0.8.7(カナリアチャンネル)にアップグレードし、OPの問題(タスク ''がルートプロジェクトで見つかりません)で行き詰まりました。これによりビルドが完全にブロックされたため、Gradleを詳しく調べる必要がありました。

OSXでの私の修復手順(Windows用に調整してください):

  1. Android St​​udioを0.8.7 にアップグレードします。
    • 環境設定|アップデート| [ベータチャンネル]を[カナリアチャンネル]に切り替えてから、[今すぐ確認]を実行します。
    • これをスキップできる場合があります。
  2. Gradleラッパーをチェックしました(現在は1.12.2。現時点では2.0を使用しないでください)。

    • 特定のバージョンが必要ない場合は、 サポートされている最新のディストリビューション を使用します

      $ vi ~/project/gradle-wrapper.properties ... distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.Zip

    • これは、[環境設定]の[Android St​​udio]で設定できます。 Gradle(ただし、0.8.7では「無効な場所」エラーが発生していました)。

    • 「ラッパー」は、各Android St​​udioプロジェクトのGradleの単なるコピーです。 OSにGradle 2を、プロジェクトに異なるバージョンを使用できます。 Android開発者ドキュメントでは、 here と説明しています。
    • 次に、build.gradleファイルをpluginに合わせて調整します。 Gradleプラグインのバージョンは、プロジェクト全体で配布/ラッパーのバージョンと互換性がある必要があります。ツールのドキュメント(tools.Android.com/tech-docs/new-build-system/user-guide#TOC-Requirements)は少し古くなっているため、プラグインのバージョンを低く設定しすぎると(0.8.0など)、 Android St​​udioは、ラッパーの許容範囲でエラーをスローします。

たとえば、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。

その他のチェック

  1. 同じプロジェクトに2つのAndroidアプリケーションモジュールがないことを確認してください

    • これは最終的なソリューション(上記の異なるGradleバージョン)と相互作用し、

      UNEXPECTED TOP-LEVEL EXCEPTION: com.Android.dex.DexException: Multiple dex files define (various classes)

    • 確認するには、ビルド| Make Projectは、どのアプリケーションを作成するかを尋ねるウィンドウをポップアップしないでください。

  2. キャッシュを無効にします
    • ファイル|キャッシュの無効化/再起動(stackoverflow.com/a/19223269/513413)
  3. ステップ2が機能しない場合は、〜/ .gradle /(www.wuttech.com/index.php/tag/groovy-lang-closure/)を削除します
    • Android St​​udioを終了します
    • $ rm -rf〜/ .gradle /
    • Android St​​udioを起動してから、同期します:
      • ツール| Android |プロジェクトをGradleファイルと同期する
    • あきらめる前に、このシーケンス全体(quit ... sync)を数回繰り返します。
  4. プロジェクトをクリーンアップ
    • ビルド|クリーンプロジェクト

これを見たら...

最近のビルドでは、ひどい失敗(例外のページ)が見られましたが、数秒以内にメッセージがクリアされ、ビルドが成功し、アプリがデプロイされました。私はそれを説明することができず、アプリが機能したため、プロジェクトに2つのGradleプラグインがあることに気付きませんでした。だから、Gradleプラグインは互いに戦ったと思う。 1つはクラッシュし、もう1つは状態を失い、エラーを報告しました。

時間がある場合は、1時間のビデオ「Gradleの優しい紹介」(www.youtube.com/watch?v=OFUEb7pLLXw)があれば、Gradleのビルドファイル、タスク、ビルドの決定などに取り組むことができました。

免責事項

私は別のキャリアで働いた後、外国のOSでこのスタック全体を学んでいます...すべて同時にかつプレッシャーを受けています。過去数か月で、Androidが持っていると思うすべての壁にぶつかりました。私はかなり頻繁にここにいましたが、これが私の最初の投稿です。これは難しい修正だと思ったので、答えの質がそれを達成するのが難しかったことを反映しているのであれば、心からおpoび申し上げます。

60
ǝɲǝɲbρɯͽ

インポートしたプロジェクトのSDKマネージャーから(ターゲットのAndroidレベルのプロジェクトの)システムイメージをダウンロードします。

このエラーは、AndroidプロジェクトのターゲットSDKがSDKフォルダーにインストールされていない場合に発生します

例えばインポートしたプロジェクトのターゲットSDKレベルはAndroid-19であり、sdk folder-> system-imagesにはAndroid-21がインストールされている場合があります。そのため、sdkマネージャーからAndroid-19システムイメージとその他のファイルをダウンロードする必要があります。システムイメージがある場合は、コピーして貼り付けることができます。

24
Ankit Bansal

削除:

<facet type="Android" name="Android">
    <configuration />
</facet>

imlファイル内。それは私のために働く。

https://plus.google.com/+AlexRuiz/posts/49hP3V9GSGe

13
toni

これは最近、1つのAndroid St​​udioプロジェクトを閉じて別のEclipseプロジェクトをインポートしたときに起こりました。これはAndroid St​​udioのバグのようで、以前に開いていたプロジェクトの一部のgradle設定を保持してから、新しいプロジェクトで混乱します。

解決策は非常に簡単でした。プロジェクトを閉じてAndroid St​​udioを完全にシャットダウンしてから再度開き、新しいプロジェクトをインポート/開きます。それ以降、すべてがスムーズに進みます。

9
rehan

私の簡単な修正は

  1. ビルド>プロジェクトのクリーン
  2. Android St​​udioを再起動します
4
holangun

どうやらこのエラーには複数の原因があります。これが私にとってそれを修正したものです。

私は次のようにビルドコマンドを実行していました:

./gradlew :testapp: build

スペースなしで実行すると、問題が修正されました。

./gradlew :testapp:build
3
David

場合によっては、Android St​​udioの2つのウィンドウを開いて、コンパイルしようとすると、この問題が発生することがあります。私にとっては、プロジェクトに埋め込まれていない、異なるAndroid St​​udioプロジェクト間で共有されている、バックアップされたGoogle Cloud Endpointモジュールをコンパイルしていて、複数のインスタンスが開いていると、このエラーが発生します私のために。しかし、他のウィンドウを閉じるとすぐに、すべてが正常になります。場合によっては、Android St​​udioを完全に再起動する必要があります。

2

あるGitブランチから別のGitブランチに切り替えて、「Clean Project」を実行しようとすると、このエラーが発生しました。 ackを使用してタスク名を検索し、.imlファイルで見つけました。

私の解決策は、(メインメニューで)[ツール]> [Android]> [プロジェクトをGradleファイルと同期]をクリックして、プロジェクトの.imlファイルを再生成することでした。この回答のおかげで 。)

2
Josh

私の場合、「Gradle version」と「Android Plugin version」をFile-> Project Structure-> Projectで設定すると、問題が修正されました。

2
somesh

同じ問題のさらに別の解決策:

これは、ウィザード(スタジオバージョン1.3.2)を使用してEclipseプロジェクトをスタジオにインポートするたびに起こりました。

私が偶然見つけたのは、Androidスタジオを終了してからスタジオを再起動すると問題がなくなることです。

イライラするが、これが誰かを助けることを願っています...

1
Mick
  1. コマンドプロンプトを開く
  2. 次に、コマンドプロンプトからプロジェクトフォルダに移動します
  3. gradlew buildと入力して実行します
1
Krishan

Gradleファイルに最新の値があることを確認してください。この執筆時点で:

  • buildToolsVersion "21.1.2"

  • 依存関係{classpath 'com.Android.tools.build:gradle:1.1.0'}

1
IgorGanapolsky

問題

Gradleビルドを実行するたびに、具体的に"[module_name]:prepareDebugUnitTestDependencies" task not foundエラーが発生しました。これは、Android St​​udioを3.0.0に更新した後に起こりました。

調査

以前にコマンドラインオプションをgradleベースのコンパイラに追加しました。これは、ファイル->設定->ビルド、実行、展開->コンパイラ->コマンドラインオプションにあります。具体的には、前述のタスクを含むいくつかのタスクを除外しました。これは以前の安定バージョン(当時2.3)では問題なく機能していましたが、これがビルド失敗の原因であると思われます。

溶液

これは、考えられる多くのソリューションの1つです。以下の設定で正しいコマンドラインオプションが指定されていることを確認してください:ファイル->設定->ビルド、実行、展開->コンパイラ->コマンドラインオプションこの問題の原因。

私の場合、このタスク(および関連すると思われる他のタスク)の除外を削除し、関連のないタスクを除外したままにして、機能しました!

1
Ace

.gradlec:\users\Myuser\.gradleフォルダーを削除/名前変更し、Android St​​udioを再起動し、私のために働いた

0
ashkufaraz

Android SDKパスが見つからなかったため、この問題が発生しました。 local.propertiesファイルまたはAndroid_HOME環境変数がありませんでした。

0

どうやらこの問題はさまざまな状況でAndroid St​​udioによって引き起こされたようですが、理由は既存のプロジェクトをインポートするときのビルドエラーです Android studioに。

私の場合、既存のプロジェクトをインポートしました。ここでは、いくつかのビルドツールをインストールすることになっており、最終的にビルド構成がエラーで完了しました。この場合、次のことを行うだけです

  1. 現在のプロジェクトを閉じます
  2. [ファイル]> [新規]> [プロジェクトのインポート](開いている最近のプロジェクトを使用しないでください)

    注:Import projectでこのようなエラーが発生した場合、この種のエラーはソースコードにはないと確信しています。
0
Deva

ルートフォルダーのパスを設定し、以下のコマンドを実行した後

ex : cd C:\Users\maha\Documents\gradle\gs-gradle-master\initial
0
Maha

これは私がやったことです

  1. .ideaフォルダーを削除する

    $ mv .idea .idea.bak

  2. プロジェクトを再度インポートします

0