可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
To add V4 support libraries to android studio, i followed this document:https://developer.android.com/tools/support-library/setup.html#libs-without-res but I get an error. Here is what i did
- SDK manager> Installed Android Support Library and Android Repository.
- Go to Build.Gradle and added the line as given in the dcoument. Build.Gradle now looks like this:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.13.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
dependencies {
compile "com.android.support:support-v4:18.0.+"
}
}
}
Then, I get a popup that suggest that I sync gradle. When i sync Gradle, i get this error:
Error:(20, 0) Gradle DSL method not found: 'compile()'
Possible causes:
The project 'staymax' may be using a version of Gradle that does not contain the method.
Open Gradle wrapper fileThe build file may be missing a Gradle plugin.
Apply Gradle plugin
Am i missing any step? Please suggest.
Build.Gradle(app)
apply plugin: 'com.android.application'
android {
compileSdkVersion 20
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.appt.shreyabisht.staymax"
minSdkVersion 15
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'])
}
回答1:
In almost all cases, your dependencies should be put into the individual module's build.gradle files rather than at the top most level build.gradle file. In your case, that means the dependency should be added to the app
module's build.gradle file:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile "com.android.support:support-v4:18.0.+"
}
And you should remove the entire allprojects
part of the top level build.gradle.
回答2:
I have found that when I add an applicationSuffix
or versionNameSuffix
through the IDE menu (Build > Edit Build Types), it changes the dependencies section of my app build.gradle from this:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
testCompile 'org.json:json:20140107'
compile "com.android.support:appcompat-v7:${supportLibVersion}"
compile "com.android.support:design:${supportLibVersion}"
compile "com.android.support:support-vector-drawable:${supportLibVersion}" // VectorDrawableCompat
compile "com.android.support:animated-vector-drawable:${supportLibVersion}" // AnimatedVectorDrawableCompat
}
to this:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
testCompile 'org.json:json:20140107'
compile "com.android.support:appcompat-v7:${supportLibVersion}" compile "com.android.support:design:${supportLibVersion}" compile "com.android.support:support-vector-drawable:${supportLibVersion}"
// VectorDrawableCompat
compile "com.android.support:animated-vector-drawable:${supportLibVersion}"
// AnimatedVectorDrawableCompat
}
I don't know why, but it combines the first three "compile" lines into one line, and moves the two comments (to the next line in each case).
I solved the problem by editing the app build.gradle and putting each "compile" statement onto its own line.
回答3:
This worked for me:
- Exit Android Studio.
- Remove
<home folder>/.gradle
folder.
- Relaunch Android studio and let it load all gradle modules again.
P.S.: Mine was a fresh project so I removed the project as well and created a new one, so there were no old gradle references from the project
回答4:
In my case, there are 2 build.gradle file in my project (it auto create by android studio when create new project)
Just move the compile line to another one is solve my problem
回答5:
Hi everyone for me it was a "couple days consuming job" to make my app run in Android Studio . Finally I found that very simple way of it .
- Create libs folder under src/main/java/ it is App/java/libs in left pane .
- Copy and paste all your external jars into here.
- Goto left pane and right click on your App then click Open Module Settings
- Then Project Structure window will appear .
- Then move to Dependencies tab .
- Final Step : Add all your jars located in App/java/libs (You will find them in src/main/java/libs) one by one .
That is all Enjoy it.
回答6:
Just delete the method.
//DELETE THIS LINES:
android {
compileSdkVersion 21
buildToolsVersion '21.1.2'
}
Try to compile again. It should work now.
Source : https://medium.com/@marcuspereira/solving-the-gradle-dsl-method-not-found-android-in-android-studio-6e5ab499bd3#.u1lxecq41
回答7:
I have the same issue, and the bug is my build.gradle of application level has dependencies of my submodules. Means
dependencies {
compile project(':library')
compile project(':MPChartLib')
}
I have just remove the two line inside the dependencies braces and it is able to start syncing.
回答8:
You have 2 different build.gradle
(sometimes more depending on you)
Only one of them is your app's gradle, then the other one is project's gradle.
If you put your dependencies project's gradle you can get error : Gradle DSL method not found: 'compile()'
Put your dependencies in app's build.gradle
then it will work.
回答9:
Deleting .gradle in my project folder did the job for me.
回答10:
Make sure you have a settings.gradle
file in your project. Adding that solved the problem of Error:Gradle DSL method not found: 'minSdkVersion()'
for me.