【问题标题】:Dexguard vs Android plugin - breaks build processDexguard vs Android 插件 - 中断构建过程
【发布时间】:2014-11-26 18:45:16
【问题描述】:

当我尝试使用dexguard 插件代替android 插件(dexguard 插件扩展android)时,我的gradle build process 失败并出现此错误:

$ ./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 是

apply plugin: 'dexguard'

我整个项目的 build.gradle

// 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

$ ./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

$ 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,那么我没有问题。

非常感谢任何帮助或指示。提前致谢。

PS:我独立运行 ANT 没有问题 - fwiw。

【问题讨论】:

    标签: android ant gradle proguard dexguard


    【解决方案1】:

    该错误表明您正在使用带有不兼容版本的 Android 插件的 DexGuard 插件。对于每个版本的 DexGuard,您可以在 DexGuard 手册 > Gradle 构建中找到记录的兼容版本。作为参考,您还可以在目录samples 中找到工作示例。

    【讨论】:

    • 谢谢。我现在可以构建它 Eric。但是我现在得到的 apk 文件拒绝安装并出现错误:INSTALL_FAILED_UID_CHANGED。结果 apk 拒绝安装的 Dexguard 插件与 Android 有何不同?任何想法?谢谢。
    • 嘿,我在 android studio 上使用 dexguard 时遇到同样的错误:失败 [INSTALL_FAILED_UID_CHANGED] 有什么想法吗?
    猜你喜欢
    • 2015-01-10
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多