Skip to content

Commit 6eeb3de

Browse files
committed
解决自动生成的混淆文件只对public类生效问题
1 parent 45f05b2 commit 6eeb3de

File tree

6 files changed

+19
-15
lines changed

6 files changed

+19
-15
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ androidJunkCode {
4242
}
4343
```
4444

45-
**注:从1.3.0开始本库已经上传到Gradle Plugin Portal 可直接这样使用**
45+
**注:从1.3.1开始本库已经上传到Gradle Plugin Portal 可直接这样使用**
4646

4747
```groovy
4848
plugins {
@@ -83,7 +83,7 @@ androidJunkCode {
8383
}
8484
```
8585

86-
如果APP开启了混淆,需要在混淆文件里配置 (1.3.0之后不需求配置)
86+
如果APP开启了混淆,需要在混淆文件里配置 (1.3.1之后不需求配置)
8787

8888
```
8989
#cn.hx.plugin.ui为前面配置的packageBase

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ buildscript {
1111
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
1212
classpath "com.getkeepsafe.dexcount:dexcount-gradle-plugin:3.0.1"
1313
if (PLUGIN_ENABLE.toBoolean()) {
14-
classpath "com.github.qq549631030:android-junk-code:1.3.1"
14+
classpath "com.github.qq549631030:android-junk-code:1.3.2"
1515
}
1616
// NOTE: Do not place your application dependencies here; they belong
1717
// in the individual module build.gradle files

library/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#project
22
GROUP=com.github.qq549631030
33
POM_ARTIFACT_ID=android-junk-code
4-
VERSION_NAME=1.3.1
4+
VERSION_NAME=1.3.2
55
POM_PACKAGING=jar
66

77
POM_NAME=AndroidJunkCode

library/src/main/groovy/cn/hx/plugin/junkcode/plugin/NewVariantApiPlugin.groovy

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ class NewVariantApiPlugin implements Plugin<Project> {
3030
def generateJunkCodeTaskProvider = project.tasks.register("generate${variantName.capitalize()}JunkCode", GenerateJunkCodeTask) {
3131
config = junkCodeConfig
3232
namespace = variant.namespace
33-
javaOutputFolder.set(junkCodeOutDir.map { it.dir("java") })
34-
resOutputFolder.set(junkCodeOutDir.map { it.dir("res") })
35-
manifestOutputFile.set(junkCodeOutDir.map { it.file("AndroidManifest.xml") })
36-
proguardOutputFile.set(junkCodeOutDir.map { it.file("proguard-rules.pro") })
33+
outputFolder.set(junkCodeOutDir)
3734
}
3835
if (JunkUtil.isAGP7_4_0(project)) {
3936
if (variant.sources.java) {
@@ -68,12 +65,9 @@ class NewVariantApiPlugin implements Plugin<Project> {
6865
def junkCodeConfig = generateJunkCodeExt.variantConfig.findByName(variantName)
6966
if (junkCodeConfig) {
7067
def generateJunkCodeTaskProvider = project.tasks.named("generate${variantName.capitalize()}JunkCode", GenerateJunkCodeTask)
71-
variant.registerJavaGeneratingTask(generateJunkCodeTaskProvider, generateJunkCodeTaskProvider.get().javaOutputFolder.get().asFile)
72-
73-
variant.registerGeneratedResFolders(project.files(generateJunkCodeTaskProvider.map {
74-
it.resOutputFolder.asFile
75-
}).builtBy(generateJunkCodeTaskProvider))
76-
variant.mergeResourcesProvider.configure { dependsOn(generateJunkCodeTaskProvider.get()) }
68+
def junkCodeOutDir = project.layout.buildDirectory.dir("generated/source/junk/${variantName}")
69+
variant.registerJavaGeneratingTask(generateJunkCodeTaskProvider, junkCodeOutDir.map { it.dir("java") }.get().asFile)
70+
variant.registerGeneratedResFolders(project.files(junkCodeOutDir.map { it.dir("res") }.get().asFile).builtBy(generateJunkCodeTaskProvider))
7771
}
7872
}
7973
}

library/src/main/groovy/cn/hx/plugin/junkcode/task/GenerateJunkCodeTask.groovy

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ abstract class GenerateJunkCodeTask extends DefaultTask {
1616
@Input
1717
abstract Property<String> getNamespace()
1818

19+
@OutputDirectory
20+
abstract DirectoryProperty getOutputFolder()
21+
1922
@OutputDirectory
2023
abstract DirectoryProperty getJavaOutputFolder()
2124

@@ -32,6 +35,13 @@ abstract class GenerateJunkCodeTask extends DefaultTask {
3235
private List<String> packageList = new ArrayList<>()
3336
private List<String> activityList = new ArrayList<>()
3437

38+
GenerateJunkCodeTask() {
39+
getJavaOutputFolder().convention(getOutputFolder().dir("java"))
40+
getResOutputFolder().convention(getOutputFolder().dir("res"))
41+
getManifestOutputFile().convention(getOutputFolder().file("AndroidManifest.xml"))
42+
getProguardOutputFile().convention(getOutputFolder().file("proguard-rules.pro"))
43+
}
44+
3545
@TaskAction
3646
void taskAction() {
3747
def javaDir = getJavaOutputFolder().get().asFile

library/src/main/groovy/cn/hx/plugin/junkcode/utils/JunkUtil.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ class JunkUtil {
355355
static void generateProguard(File proguardFile, List<String> packageList) {
356356
StringBuilder sb = new StringBuilder()
357357
for (i in 0..<packageList.size()) {
358-
sb.append("-keep public class ${packageList.get(i)}.**{*;}\n")
358+
sb.append("-keep class ${packageList.get(i)}.**{*;}\n")
359359
}
360360
writeStringToFile(proguardFile, sb.toString())
361361
}

0 commit comments

Comments
 (0)