尽管满足所有要求,但找不到DSL实现()

时间:2019-06-17 13:06:53

标签: android android-studio gradle android-gradle

我要在项目中更新Android Studio,Gradle和gradle插件,因为我想实现MoPub。

MoPub似乎只能与新版本的gradle一起使用,因此我最终不得不从2.3升级到3.4.x

我这样做了,甚至更新了Android Studio,但是,当我同步该项目时,找不到DSL实现()。

我的build.gradle(项目):

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        maven { url "https://s3.amazonaws.com/moat-sdk-builds" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
        classpath 'com.google.gms:google-services:3.2.0'
        classpath 'io.fabric.tools:gradle:1.25.4'
    }
}
allprojects {
    repositories {
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

我的build.gradle(应用程序):

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "..."
        minSdkVersion 23
        targetSdkVersion 26
        versionCode ...
        versionName "..."
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    jcenter() // includes the MoPub SDK and AVID library
    maven { url "https://s3.amazonaws.com/moat-sdk-builds" }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implmementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.google.firebase:firebase-core:12.0.1'
    implementation 'com.google.firebase:firebase-firestore:12.0.1'
    testImplementation 'junit:junit:4.12'
    implementation('com.mopub:mopub-sdk:+@aar') {
        transitive = true
    }
}
apply plugin: 'com.google.gms.google-services'

同步时收到以下消息:

  

错误:未找到Gradle DSL方法:“ implmementation()”
  可能的原因:

  项目'...'可能正在使用不包含该方法的Android Gradle插件版本(例如,在1.1.0中添加了'testCompile')。
  将插件升级到版本3.4.1并同步项目

  项目'...'可能正在使用不包含该方法的Gradle版本。
  打开Gradle包装器文件

  生成文件可能缺少Gradle插件。
  应用Gradle插件

当我单击第一个提示升级插件时,出现错误,可能是因为我已经使用3.4.1
当我单击第二个时,gradle-wrapper.properties打开,但是我使用的是最新的gradle-5.1.1-all.zip,对吧?
然后,当我单击最后一个提示时,会打开一个弹出窗口,其中提供了很多我可以在应用模块中实现的插件。

即使我具有所有必需的版本等,为什么Gradle也找不到implementation()?我该怎么办?

2 个答案:

答案 0 :(得分:0)

build.gradle中有一个错字,您需要更改以下内容:

implmementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'

对此:

implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'

您多了m

答案 1 :(得分:0)

  

错误:未找到Gradle DSL方法:“ implmementation()”

检查错误消息。有一个错字

使用

implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'

代替

implmementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'