@@ -23,6 +23,9 @@ class AndroidJunkCodePlugin implements Plugin<Project> {
2323 Closure<JunkCodeConfig > junkCodeConfig = generateJunkCodeExt. configMap[variantName]
2424 if (junkCodeConfig) {
2525 def dir = new File (project. buildDir, " generated/source/junk/$variantName " )
26+ def resDir = new File (dir, " res" )
27+ def javaDir = new File (dir, " java" )
28+ def manifestFile = new File (dir, " AndroidManifest.xml" )
2629 String packageName = findPackageName(variant)
2730 def generateJunkCodeTask = project. task(" generate${ variantName.capitalize()} JunkCode" , type : AndroidJunkCodeTask ) {
2831 junkCodeConfig. delegate = config
@@ -35,14 +38,26 @@ class AndroidJunkCodePlugin implements Plugin<Project> {
3538 for (int i = variant. sourceSets. size() - 1 ; i >= 0 ; i-- ) {
3639 def sourceSet = variant. sourceSets[i]
3740 if (! sourceSet. manifestFile. exists()) {
38- android. sourceSets. " ${ sourceSet.name} " . manifest. srcFile(new File (dir, " AndroidManifest.xml " ) . absolutePath)
41+ android. sourceSets. " ${ sourceSet.name} " . manifest. srcFile(manifestFile . absolutePath)
3942 break
4043 }
4144 }
42- android. sourceSets. " ${ variantName} " . res. srcDir(new File (dir, " res" ))
43- variant. registerJavaGeneratingTask(generateJunkCodeTask, new File (dir, " java" ))
44- // 在执行generateBuildConfig之前执行generateJunkCodeTask
45- variant. generateBuildConfigProvider. get(). dependsOn(generateJunkCodeTask)
45+ if (variant. respondsTo(" registerGeneratedResFolders" )) {
46+ generateJunkCodeTask. ext. generatedResFolders = project
47+ .files(resDir)
48+ .builtBy(generateJunkCodeTask)
49+ variant. registerGeneratedResFolders(generateJunkCodeTask. generatedResFolders)
50+ if (variant. hasProperty(" mergeResourcesProvider" )) {
51+ variant. mergeResourcesProvider. configure { dependsOn(generateJunkCodeTask) }
52+ } else {
53+ // noinspection GrDeprecatedAPIUsage
54+ variant. mergeResources. dependsOn(generateJunkCodeTask)
55+ }
56+ } else {
57+ // noinspection GrDeprecatedAPIUsage
58+ variant. registerResGeneratingTask(generateJunkCodeTask, resDir)
59+ }
60+ variant. registerJavaGeneratingTask(generateJunkCodeTask, javaDir)
4661 }
4762 }
4863 }
0 commit comments