java - 在 Java 模块 Android Studio 中使用混淆器

标签 java android-studio gradle proguard

我正尝试在 Android Studio 上的 java 模块的 build.gradle 文件中使用混淆器,我需要混淆生成的源代码,但是当我像在其他项目中那样使用混淆器时,构建任务失败了。下面我展示了我正在尝试做的事情和错误:

import proguard.gradle.ProGuardTask

apply plugin: 'java'

task proguardFiles(dependsOn: compileJava, type: ProGuardTask) {
   //
}


Error:Cause: startup failed:
script '...Path\build.gradle': 1: unable to resolve class proguard.gradle.ProGuardTask
@ line 1, column 1.
import proguard.gradle.ProGuardTask
^

1 error

关于解决方案有什么想法吗?

最佳答案

我找到了我自己的问题的解决方案,我希望这对需要它的人有所帮助。

包含在 gradle 文件的顶部:

import proguard.gradle.ProGuardTask

在其他地方到同一个文件或项目配置(gradle 文件)把这个:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'net.sf.proguard:proguard-gradle:5.2.1'
    }
}

最后定义您的自定义 proguardTask:

task proguardFiles(type: ProGuardTask, dependsOn: compileJava) {
    printmapping "$buildDir/outputs/mapping/mapping.txt"
    configuration 'proguard-rules.pro'

    libraryjars files(configurations.compile.findAll {}.collect())

    injars sourceSets.main.output

    outjars "$buildDir/libs/myJarName-${version}.jar"
}

它应该可以工作!!!

关于java - 在 Java 模块 Android Studio 中使用混淆器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40616077/

相关文章:

gradle - 不要在 Gradle 中使用来自传递依赖的更高版本的库

java - 手动展开/折叠所有树项内存成本javafx 2.2

java - 这是在单独线程上删除文件夹的正确方法吗?

gradle - 如何在 Gradle 中使用 jOOQ 代码生成?

android - CircleCI Android构建因Gradle 6.4失败

android - android每个buildTypes设置productFlavors的signingConfigs

java - 我可以在没有客户端缓冲的情况下将多个字节数组写入 HttpClient 吗?

java - 如何读取HTTP自定义错误字符串

android-studio - 使用配置“摇动重复值资源 'attr/highlightColor'

java - 在 MAC OC 10.9 上升级 android Studio 和 JAVA 后出现问题