问题
When i try to use dexguard
plugin in place of android
plugin (dexguard
plugin extends android
), my gradle build process
fails with this error:
$ ./gradlew assembleDebug
FAILURE: Build failed with an exception.
* Where:
Build file '/projectRoot/app/build.gradle' line: 1
* What went wrong:
A problem occurred evaluating project ':projectRoot:app'.
Could not create plugin of type 'g'.
The first line build.gradle for my app module is
apply plugin: 'dexguard'
The build.gradle for my whole project
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
flatDir { dirs 'path-to-dexguard/lib' }
mavenCentral()
}
dependencies {
classpath ':dexguard:'
classpath 'com.android.tools.build:gradle:0.12.+'
}
}
I ran the gradlew
with debug
option enabled
$ ./gradlew --debug assembleDebug
[ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.NoClassDefFoundError: com/android/builder/DefaultBuildType
[ERROR] [org.gradle.BuildExceptionReporter] at com.saikoa.dexguard.g.$getStaticMetaClass(DexGuard)
[ERROR] [org.gradle.BuildExceptionReporter] at com.android.build.gradle.BasePlugin.<init>(BasePlugin.groovy:2173)
[ERROR] [org.gradle.BuildExceptionReporter] at com.android.build.gradle.AppPlugin.<init>(AppPlugin.groovy:37)
[ERROR] [org.gradle.BuildExceptionReporter] at com.saikoa.dexguard.g.<init>(DexGuard:90)
[ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.DependencyInjectingInstantiator.newInstance(DependencyInjectingInstantiator.java:62)
[ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.plugins.DefaultPluginRegistry.loadPlugin(DefaultPluginRegistry.java:65)
[ERROR] [org.gradle.BuildExceptionReporter] ... 46 more
[ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.ClassNotFoundException: com.android.builder.DefaultBuildType
[ERROR] [org.gradle.BuildExceptionReporter] ... 52 more
My gradle
version is 2.1
$ gradle -v
------------------------------------------------------------
Gradle 2.1
------------------------------------------------------------
Build time: 2014-09-08 10:40:39 UTC
Build number: none
Revision: e6cf70745ac11fa943e19294d19a2c527a669a53
Groovy: 2.3.6
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.7.0_07 (Oracle Corporation 23.3-b01)
OS: Mac OS X 10.9.5 x86_64
If i use android instead of dexguard, then i have no issues.
Any help or pointers are highly appreciated. Thanks in advance.
PS: I have no issues running ANT
independently - fwiw.
回答1:
The error suggests that you are using the DexGuard plugin with an incompatible version of the Android plugin. For each version of DexGuard, you can find the compatible version documented in the DexGuard manual > Gradle build. For reference, you can also find working samples in the directory samples
.
来源:https://stackoverflow.com/questions/26149629/dexguard-vs-android-plugin-breaks-build-process