web-dev-qa-db-ja.com

Android gradle build Error:(9、0)Gradle DSLメソッドが見つかりません: 'compile()'。

プロジェクトを同期しようとすると、次のビルドエラーが発生します。

Error:(9, 0) Gradle DSL method not found: 'compile()'
Possible causes:The project 'AlexTest' may be using a version of Gradle that does not contain the method.
The build file may be missing a Gradle plugin.
link: Apply Gradle plugin

私は下部の同じリンクにリンクされているすべてのgradleプラグインを適用しようとしましたが、同じ問題があるため、最初のエラーが原因であると結論付けます。

AlexTestのbuild.gradleファイル(プロジェクトディレクトリ)は次のとおりです。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.13.2'
        compile 'com.google.Android.gms:play-services:6.1.11'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

私はそれが問題を抱えていたgradleファイルだったと思います。しかし、それがどのメソッドを指しているのか分かりません。

また、これはgradle-wrapper.propertiesであり、これも参照しています。

#Mon Nov 10 01:06:12 PST 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.Zip

おそらく、distributionUrlのgradleバージョンは、依存関係のgradleバージョンと一致する必要がありますか?

また、appディレクトリ自体にbuild.gradleファイルがあります-1レベル下ですが、それが参照しているとは思いませんが、ここにあります:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 20
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "com.snappiesticker.alextest"
        minSdkVersion 16
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.Android.gms:play-services:6.1.+'
}
58
BigBoy1337

私は下部の同じリンクにリンクされているすべてのgradleプラグインを適用しようとしましたが、同じ問題があるため、最初のエラーが原因であると結論付けます。

正しい。

AlexTestのbuild.gradleファイル(プロジェクトディレクトリ)は次のとおりです。

このファイルにはコードコメントが含まれていることに気付くでしょう。

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files

そのファイルからcompile 'com.google.Android.gms:play-services:6.1.11'行を削除します。他のcompile 'com.google.Android.gms:play-services:6.1.+'ファイルにあるbuild.gradleを残します。

dependenciesbuildscriptクロージャーは、Gradleプラグイン専用です。モジュールのbuild.gradleファイルにある最上位のdependenciesクロージャーは、アプリケーションの依存関係用です。

78
CommonsWare

Sawは、他の理由で問題が発生したと報告しましたが、これは解決しました。

プロジェクト構造(Android Studio)で変更を行って[OK]を押すと、Gradleは同期されますが、依存関係ブロックに次のようなものがある場合、このタイプの同期が行われます。

同期後、このブロックは次のようになります。

この問題を解決する1つの方法は、同期前の状態を維持するために改行を挿入するか、2つのステートメントの間にセミコロンを挿入することです。

役に立てば幸いです。

13

依存関係にだまされやすい文を追加するだけです

プラグインの適用:「jetty」

3
androidwifi

AlexTestのbuild.gradleファイルではなく、モジュールのbuild.gradleファイルで依存関係を宣言する

enter image description here

1

みなさん、こんにちは。アプリをAndroid St​​udioで実行するのは「数日かかる仕事」でした(Eclipseから移行し、この問題もありました)。最後に、そのとても簡単な方法を見つけました。

  1. Src/main/Java /の下にlibsフォルダーを作成します。左ペインのApp/Java/libsです。
  2. すべての外部jarをここにコピーして貼り付けます。
  3. 左ペインに移動してアプリを右クリックし、[モジュール設定を開く]をクリックします
  4. 次に、プロジェクト構造ウィンドウが表示されます。
  5. 次に、[依存関係]タブに移動します。最終ステップ:App/Java/libs(src/main/Java/libsにあります)にあるすべてのjarを1つずつ追加します。

それがすべてお楽しみください。

1
katmanco