我有这个错误
Error:(45, 0) Gradle DSL method not found: 'implementation()'
Possible causes:<ul><li>The project 'LaTaxi2' may be using a version of the Android Gradle plug-in that does not contain the method (e.g. 'testCompile' was added in 1.1.0).
<a href="fixGradleElements">Upgrade plugin to version 2.3.3 and sync project</a></li><li>The project 'LaTaxi2' may be using a version of Gradle that does not contain the method.
<a href="open.wrapper.file">Open Gradle wrapper file</a></li><li>The build file may be missing a Gradle plugin.
<a href="apply.gradle.plugin">Apply Gradle plugin</a></li>
build.gradle
内容
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
maven {
url 'https://maven.google.com'
}
// google()
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
/* CHANGE to classpath 'com.android.tools.build:gradle:2.3.3' for STABLE BUILD TOOL VERSION*/
// classpath 'com.android.tools.build:gradle:3.0.0-alpha7'
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.google.gms:google-services:3.1.0'
// We recommend changing it to the latest version from our changelog:
// https://docs.fabric.io/android/changelog.html#fabric-gradle-plugin
classpath 'io.fabric.tools:gradle:1+'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven {
url 'https://maven.google.com'
}
// google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
build .gradle
模块应用
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven {
url 'https://maven.google.com'
}
// google()
maven { url 'https://maven.fabric.io/public' }
}
android {
compileSdkVersion 25
buildToolsVersion '26.0.0'
defaultConfig {
applicationId "in.techware.lataxi"
minSdkVersion 17
targetSdkVersion 25
versionCode 5
versionName "1.0.4"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
/* Remove This to remove Crashlytics and Fabric */
compile('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') {
transitive = true;
}
/* compile('com.digits.sdk.android:digits:2.0.6@aar') {
transitive = true;
}*/
implementation 'com.android.support:appcompat-v7:25.4.0'
implementation 'com.android.support:design:25.4.0'
implementation 'com.android.support:recyclerview-v7:25.4.0'
implementation 'com.squareup.okhttp3:okhttp:3.8.1'
implementation 'com.android.support:cardview-v7:25.4.0'
implementation 'com.github.bumptech.glide:glide:3.8.0'
implementation 'com.google.android.gms:play-services-maps:11.0.2'
implementation 'com.google.android.gms:play-services-location:11.0.2'
implementation 'com.google.android.gms:play-services-places:11.0.2'
implementation 'com.google.firebase:firebase-auth:11.0.2'
implementation 'com.google.firebase:firebase-messaging:11.0.2'
implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta1'
implementation 'com.google.code.gson:gson:2.8.0'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
答案 0 :(得分:25)
或者如果您不想更新到最新的Gradle,请返回使用DSL方法compile()
而不是implementation()
答案 1 :(得分:21)
要使用DSL implementation()
,您必须使用:
然后在build.gradle
中你必须使用:
buildscript {
repositories {
...
// You need to add the following repository to download the
// new plugin.
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-beta1'
}
}
在gradle-wrapper.properties
distributionUrl=\
https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip
更详细info here。
答案 2 :(得分:7)
作为一个初学者,我发现有2个build.gradle文件
值得检查的是,您没有在错误的文件中添加该行。 我在项目文件中添加了我的,而我应该在模块一中添加了它。
答案 3 :(得分:4)
您使用土耳其语工作区, 变革之下解决了问题
testImplementation -> testİmplementation,
androidTestImplementation -> androidTestİmplementation
androidTestImplementation -> androidTestİmplementation
答案 4 :(得分:2)
在我看来,这只是一个错字。一排后是一个加号“ /”
答案 5 :(得分:0)
implementation()
取代了compile()
配置,该配置将于2018年底淘汰。
为了纠正错误并使用它,您必须更新为 Android Gradle Plugin 3.0.0 (或更高版本)。作为此更新的结果,您还需要将Gradle更新为 4.1版(或更高版本)。您还需要使用 Build Tools 26.0.2 (或更高版本),这意味着要在buildToolsVersion
中更新build.gradle
,或从那里完全删除它(因为3.0.0,默认情况下使用最低要求版本。您还需要更新到 Android Studio 3 (或更高版本)才能使用这些高级版本。
您可以在此处阅读有关android gradle插件3.0.0的更新日志,改进的编译时间等信息: https://developer.android.com/studio/releases/gradle-plugin#3-0-0
那么如何更新Android Gradle插件和Gradle?
选项1:手动
在您的build.gradle
中找到gradle类路径,并将版本更新为gradle 3.0。另外,应添加google()maven的存储库:
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
}
}
在gradle-wrapper.properties中找到您的distributionUrl并更新为:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
选项2:通过项目属性 (但是请注意,手动配置将覆盖它)
转到文件→项目结构→项目
最后一件事,您还可以选择是用Implementation()还是api()替换compile()。默认情况下,我建议只使用Implementation()。您可以在这里阅读更多有关差异的信息: https://developer.android.com/studio/build/dependencies
答案 6 :(得分:0)
我有一个很简单的原因无法解决这个问题,所以我必须发表我的回答,以防止其他人对此进行审查。
不要将存储库和依赖项放在名为build.gradle (Projet: YourProjectName)
的文件中!该文件中有一条注释,内容为:
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
把那张纸条放在那里的人做得很好。取而代之的是,将您的存储库和依赖项放置在名称相似的模块文件build.gradle (Module: app)
中。
应该已经有一个dependencies
函数。您可能需要添加存储库功能。就我而言,是:
repositories {
maven { url "https://jitpack.io" }
}
这应该使您可以同步并识别implementation
。
答案 7 :(得分:0)
我遇到了类似的错误。当我尝试使用可能的代码从may build.gradle(Module:app)包含recyclerview依赖项时。
//other build.gradle(Module: App) code above
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'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7'
testCompile 'junit:junit:4.12'
implementation 'com.android.support:recyclerview-v7:25.3.1'
}
所以我解决此问题的简单方法是将代码更改为此,在保留所有其他代码及其版本号的同时,我更改了要编译的实现。
//other build.gradle(Module: App) code above
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'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7'
testCompile 'junit:junit:4.12'
compile 'com.android.support:recyclerview-v7:25.3.1'
}
我希望这对遇到类似问题的人有所帮助。
PS:实际错误是由implementation 'com.android.support:recyclerview-v7:25.3.1'
引起的,将代码更改为compile 'com.android.support:recyclerview-v7:25.3.1'
可以解决此问题。
答案 8 :(得分:0)
就我而言,我添加了这些行并解决了问题
\Illuminate\Session\Middleware\StartSession::class,