2015-01-16 66 views
0

任何想法?剛剛更新的Android Studio和相關的構建工具,它是破碎的gradle/proGuard。與我以前在地方的配置,與minifyEnabled真正一個,它拒絕了發揮:錯誤:未在根項目中找到任務'proguardRelease'

Cannot resolve symbol 'getDefaultProguardFile' 

如果我註釋掉minifyEnabled和proguardFiles條目我,而不是得到一個:

Error:FAILURE: Build failed with an exception. 

* What went wrong: 
Task 'proguardRelease' not found in root project 'testApp'. 

在哪裏該應用的build.gradle是:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 16 
    buildToolsVersion '21.1.2' 
    defaultConfig { 
     applicationId 'foo.bar.testApp' 
     minSdkVersion 16 
     targetSdkVersion 16 
     versionCode 7 
     versionName '0.5.0 - Alpha test' 
    } 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_6 
     targetCompatibility JavaVersion.VERSION_1_6 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' 
     } 
    } 
    productFlavors { 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    // You must install or update the Support Repository through the SDK manager to use this dependency. 
    compile 'com.android.support:support-v4:21.0.3' 
    compile project(':androidsvg') 
    compile 'com.google.code.gson:gson:2.3.1' 
    compile 'com.opencsv:opencsv:3.1' 
    compile 'com.jjoe64:graphview:4.0.0' 
} 

隨着項目的build.gradle文件之中:

// 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:1.0.0' 

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

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

,並形成日誌,錯誤:

Caused by: org.gradle.api.internal.MissingMethodException: Could not find method proguardFile() for arguments [/usr/local/opt/Android_sdk/tools/proguard/proguard-android.txt, proguard-rules.pro] on BuildType_Decorated{name=release, debuggable=false, testCoverageEnabled=false, jniDebuggable=false, pseudoLocalesEnabled=false, renderscriptDebuggable=false, renderscriptOptimLevel=3, applicationIdSuffix=null, versionNameSuffix=null, minifyEnabled=true, zipAlignEnabled=true, signingConfig=null, embedMicroApp=true, mBuildConfigFields={}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}}. 
    at org.gradle.api.internal.AbstractDynamicObject.methodMissingException(AbstractDynamicObject.java:68) 
    at org.gradle.api.internal.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:56) 
    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:172) 
    at com.android.build.gradle.internal.dsl.BuildType_Decorated.invokeMethod(Unknown Source) 
    at build_6k5pyml806li01s692ttf90ka$_run_closure1_closure5_closure7.doCall(/Users/arober11/AndroidStudioProjects/testApp/app/build.gradle:20) 
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:63) 
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:130) 
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:91) 
    at org.gradle.api.internal.DefaultNamedDomainObjectCollection$ContainerElementsDynamicObject.invokeMethod(DefaultNamedDomainObjectCollection.java:324) 
    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147) 
    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147) 
    at org.gradle.api.internal.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:62) 
    at build_6k5pyml806li01s692ttf90ka$_run_closure1_closure5.doCall(/Users/arober11/AndroidStudioProjects/testApp/app/build.gradle:18) 
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:63) 
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:130) 
    at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:91) 
    at org.gradle.api.internal.AbstractNamedDomainObjectContainer.configure(AbstractNamedDomainObjectContainer.java:68) 
    at org.gradle.api.internal.AbstractNamedDomainObjectContainer.configure(AbstractNamedDomainObjectContainer.java:24) 
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:55) 
    at org.gradle.api.Action$execute.call(Unknown Source) 
    at com.android.build.gradle.BaseExtension.buildTypes(BaseExtension.groovy:248) 
    at com.android.build.gradle.AppExtension_Decorated.buildTypes(Unknown Source) 
    at build_6k5pyml806li01s692ttf90ka$_run_closure1.doCall(/Users/arober11/AndroidStudioProjects/testApp/app/build.gradle:17) 
    at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:63) 
    at org.gradle.api.internal.plugins.ExtensionsStorage$ExtensionHolder.configure(ExtensionsStorage.java:145) 
    at org.gradle.api.internal.plugins.ExtensionsStorage.configureExtension(ExtensionsStorage.java:69) 
    at org.gradle.api.internal.plugins.DefaultConvention$ExtensionsDynamicObject.invokeMethod(DefaultConvention.java:207) 
    at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147) 
    at org.gradle.groovy.scripts.BasicScript.methodMissing(BasicScript.java:79) 
    at build_6k5pyml806li01s692ttf90ka.run(/Users/arober11/AndroidStudioProjects/testApp/app/build.gradle:3) 
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:52) 
    ... 43 more 
2015-01-16 14:28:22,654 [244566952] WARN - nal.AbstractExternalSystemTask - Gradle DSL method not found: 'proguardFile()' 
com.intellij.openapi.externalSystem.model.LocationAwareExternalSystemException: Gradle DSL method not found: 'proguardFile()' 
    at com.android.tools.idea.gradle.project.ProjectImportErrorHandler.createUserFriendlyError(ProjectImportErrorHandler.java:222) 
    at com.android.tools.idea.gradle.project.ProjectImportErrorHandler.getUserFriendlyError(ProjectImportErrorHandler.java:81) 
    at com.android.tools.idea.gradle.project.AndroidGradleProjectResolver.getUserFriendlyError(AndroidGradleProjectResolver.java:367) 
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:367) 
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:333) 
    at org.jetbrains.plugins.gradle.service.project.GradleExecutionHelper.execute(GradleExecutionHelper.java:203) 
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:116) 
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:64) 
    at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl$1.produce(RemoteExternalSystemProjectResolverImpl.java:41) 
    at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl$1.produce(RemoteExternalSystemProjectResolverImpl.java:37) 
    at com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.java:59) 
    at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.resolveProjectInfo(RemoteExternalSystemProjectResolverImpl.java:37) 
    at com.intellij.openapi.externalSystem.service.remote.wrapper.ExternalSystemProjectResolverWrapper.resolveProjectInfo(ExternalSystemProjectResolverWrapper.java:49) 
    at com.intellij.openapi.externalSystem.service.internal.ExternalSystemResolveProjectTask.doExecute(ExternalSystemResolveProjectTask.java:48) 
    at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:137) 
    at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:123) 
    at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$2.execute(ExternalSystemUtil.java:406) 
    at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3$2.run(ExternalSystemUtil.java:483) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$TaskRunnable.run(ProgressManagerImpl.java:471) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) 
    at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$8.run(ProgressManagerImpl.java:380) 
    at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:419) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 
    at java.lang.Thread.run(Thread.java:695) 
    at com.intellij.openapi.application.impl.ApplicationImpl$1$1.run(ApplicationImpl.java:149) 

該文件是存在的,例如訪問

ls /usr/local/opt/Android_sdk/tools/proguard/ 
README    examples   proguard-android.txt 
ant    lib    proguard-project.txt 
bin    license.html 
docs    proguard-android-optimize.txt 
+0

有在Android Studio中沒有更多的ProGuard的,你使用'minify' – tyczj

+0

嗯是的,有。 'minifyEnabled'代替'runProguard',但'proguardFiles getDefaultProguardFile'('proguard-android.txt'),'proguard-rules.pro''仍然需要。 – SubliemeSiem

+0

在build.gradle中嘗試構建工具的diff版本? 「21.0.2」 –

回答

0

它應該是:

buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 

你已經得到proguardFile代替proguardFiles,所以只是-s添加到末尾,你應該罰款。

+0

對不起,'s'在這裏被'cut'n'paste弄丟了,還是破了:( – arober11

+0

你有'distributionUrl = http \://services.gradle.org/distributions/gradle-2.2.1-all。 zip'在你的gradle-wrapper.properties文件中?Android Studio應該自動執行此操作,但它可能傷害檢查。 – SubliemeSiem

+0

「不能傷害」,linux正在搞亂我的'-key again>。< – SubliemeSiem

-1

你dolution應該proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

+0

Nope:不會觸及以下問題:在'root'項目'testApp'中找不到任務'proguardRelease'。 – arober11

相關問題