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


89

ノートパソコンを変更してAndroid Studioバージョン0.8.2にアップデートした後でプロジェクトをビルドしようとすると、このエラーが発生します。

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

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

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

ビルドに失敗しました

これが私のGradleファイルです:

トップレベルの設定.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が空です


実行している正確なコマンドは何ですか?
オパール2014

@Opal私はただきれいにして再構築しようとしています
TomRichardson '8/08/14

まぁ、いいよ。どのコマンドを実行しますか?
オパール2014

8
Android Studioを閉じて、もう一度開いてみてください。それは私のために働いた。
ペッター、2014年

2
これらの多くの中から答えが選択されていません??? 少なくともあなたの答えを投稿してください、そうすれば他の人にも役立ちます。
kAmol 2016年

回答:


63

回答は遅いですが、これはGoogleにとって難しい問題(単一引用符)であり、何が起こっているのかは明確ではありません。私はまだコメントしたり、範囲(または3つのリンクを投稿)を求めたりする評判がありません。そのため、この回答は少し面倒かもしれません。

すばやく回答するために、プロジェクトに複数のGradleプラグインを含めることができます。

Gradleラッパーとプラグインの同期

問題は、破損したIMLファイルから始まっているようです。Android Studio(プロジェクトを閉じてから再び開くまで)がIMLがなくなった(そうではなかった)と文句を言い始めたため、モジュールを削除する必要がありますが、これは拒否しました。それは持続し、AS 0.8.7(カナリアチャネル)にアップグレードして、OPの問題(タスク ''がルートプロジェクトに見つかりません)で立ち往生しました。これはビルドを完全にブロックしたので、Gradleを掘り下げる必要がありました。

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

  1. Android Studioを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

    • これは、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。

その他のチェック

  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 Studioを終了します
    • $ rm -rf〜/ .gradle /
    • Android Studioを起動して同期します。
      • ツール| Android | Gradleファイルとプロジェクトを同期する
    • あきらめる前に、このシーケンス全体(quit ... sync)を数回繰り返します。
  4. プロジェクトをきれいにする
    • ビルド| クリーンプロジェクト

これを見たら...

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

時間があれば、1時間のビデオ「A Gradle Introduction to Gradle」(www.youtube.com/watch?v=OFUEb7pLLXw)が、Gradleのビルドファイル、タスク、ビルドの決定などへの取り組みに本当に役立ちました。

免責事項

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


すばらしい回答、謝罪するものは何もありません。YouTubeリンクに感謝します
Sabuncu

これをありがとう。「他のチェック」の手順3私のためにそれをやったことをした$ rm -rf ~/.gradle/
文字列の

24

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

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

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


1
これで修正されました。ASで黄色の警告「Gradleプロジェクトの同期に失敗しました」に気づきました。メッセージウィンドウを見ると、数回のクリックで不足しているターゲットSDKをインストールするためのハイパーリンクが含まれていました。
Bungle氏、2015

13

削除する:

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

あなたのimlファイルで。それは私にとってはうまくいきます。

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


これはGradleプロジェクトには適用されません。私のproject.xmlには次が含まれています<facet type="java-gradle" name="Java-Gradle">...
Trinimon 2015年

9

これは最近、あるAndroid Studioプロジェクトを閉じて別のEclipseプロジェクトをインポートしたときに起こりました。Android Studioのバグのようで、以前に開いたプロジェクトのGradle設定がいくつか保持され、新しいプロジェクトで混乱するようです。

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


4

私のための簡単な修正は

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

3

私の場合、「Gradleバージョン」を「Androidプラグインバージョン」と同じに設定すると、[ファイル]-> [プロジェクト構造]-> [プロジェクト]で問題が解決しました。


3

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

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

./gradlew :testapp: build

スペースなしで実行すると問題が解決しました:

./gradlew :testapp:build

3

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

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


2

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


2

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


いい男、ここで同じこと。ANDROID_SDKを私の〜/ .bash_profileに追加し、それは機能しました
Gary O 'Donoghue

1

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

  • buildToolsVersion "21.1.2"

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


1

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

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

私が偶然見つけたのは、Android Studioを終了してからStudioを再起動すると、問題が解消したことです。

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


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

1

問題

"[module_name]:prepareDebugUnitTestDependencies" task not foundGradleビルドを実行するたびに、具体的にエラーが発生しました。これは、Android Studioを3.0.0にアップデートした後に起こりました。

調査

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

解決

これは多くの可能な解決策の1つです。[ファイル]-> [設定]-> [ビルド、実行、配置]-> [コンパイラ]-> [コマンドラインオプション]の設定で正しいコマンドラインオプションが指定されていることを確認してください。

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


0

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

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

0

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

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

    $ mv .idea .idea.bak

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


0

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


0

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

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

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

    注:この種のエラーは、プロジェクトのインポートで発生したソースコードにはないはずです。

0

私の場合、Android Studioのコンパイルオプションが「スタックトレース」であるというこの問題に遭遇しました。スタックトレース--stacktraceに変更すると、問題は解決しました。

ここに画像の説明を入力してください


0

この問題を解決しましたAndroidフォルダーにファイルを作成するだけです

Androidフォルダーに移動

ファイルlocal.propertiesを作成します

次に、このコードをlocal.propertiesファイルに追加します:-

MacBookを使用している場合は、sdk.dir = / Users / USERNAME / Library / android / sdk

Windowsを使用している場合は、sdk.dir = C:\ Users \ USERNAME \ AppData \ Local \ Android \ sdk

Linuxを使用している場合は、sdk.dir = / home / USERNAME / Android / sdk

システムのユーザー名を知りたい場合は、Mac whoamiのコマンドを使用してください

その後、コマンドreact-native run-androidを再実行します

ありがとう:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.