Dexguard vs Android plugin - breaks build process

别等时光非礼了梦想. 提交于 2019-12-13 05:16:30

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!