问题描述
当我尝试使用 dexguard
插件代替 android
插件时(dexguard
插件扩展 android
),我的 gradle build process
因以下错误而失败:
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'.
我的应用模块的第一行 build.gradle 是
The first line build.gradle for my app module is
apply plugin: 'dexguard'
我整个项目的 build.gradle
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.+'
}
}
我在启用 debug
选项的情况下运行了 gradlew
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
我的 gradle
版本是 2.1
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
如果我使用 android 而不是 dexguard,那么我没有问题.
If i use android instead of dexguard, then i have no issues.
非常感谢任何帮助或指示.提前致谢.
Any help or pointers are highly appreciated. Thanks in advance.
PS:我独立运行 ANT
没有问题 - fwiw.
PS: I have no issues running ANT
independently - fwiw.
推荐答案
该错误表明您将 DexGuard 插件与不兼容的 Android 插件版本一起使用.对于每个版本的 DexGuard,您可以在 DexGuard 手册 > Gradle 构建中找到记录的兼容版本.作为参考,您还可以在 samples
目录中找到工作示例.
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
.
这篇关于Dexguard 与 Android 插件 - 中断构建过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!