EastWoodYang / MicroModule

Rebuild multiple complete module structures within the module.
Other
219 stars 50 forks source link

插件源码添加MicroModule资源过程重复了? #7

Closed zuowenpin closed 5 years ago

zuowenpin commented 5 years ago

你好,我看源码的时候,发现在afterEvaluate过程中,会将MicroModule的addMicroModuleSourceSet添加一次,在preBuild Task中,又会添加一次addMicroModuleSourceSet是重复了吗? 我这边将preBuild Task中去掉后,也能正常编译,是考虑到Gradle版本兼容性的问题吗?

非常感谢~

EastWoodYang commented 5 years ago

不是兼容性,你可以尝试下 去掉,然后执行‘rebuild’,你就知道原因了 :-)

zuowenpin commented 5 years ago

我这边去掉了preBuild, rebuild也没有异常,通过看Build过程,> Configure project :microsystem 会正常执行到,microsystem是我这边使用了microsystem插件的一个library工程, 最终apk的代码也没有什么异常. Gradle gradle-4.10.1-all.zip android plugin com.android.tools.build:gradle:3.2.1.

EastWoodYang commented 5 years ago

注释掉 project.tasks.preBuild.doFirst,会报

异常

EastWoodYang commented 5 years ago

原因是 在gradle configure时期会生成并设置模块的AndroidManifest,xml,但在execute时期,有可能执行clean Task 清除了之前configure时期生成的AndroidManifest,xml,为避免这种情况,在模块prebuild前重新生成AndroidManifest,xml。

zuowenpin commented 5 years ago

那我知道了,我这边确实没有没有使用你的Demo,而且对你的插件做了简单的定制~ 除了Androidmanifest.xml, code和res等还需要clear后再添加吗?

EastWoodYang commented 5 years ago

生成Androidmanifest.xml是要基于java和res的,所以还是要重新设置sourceSets的

zuowenpin commented 5 years ago

非常感谢~ 我再学习下生成AndroidManifest的过程~ 另外R.java的处理感觉有点复杂,直接使用Module的R.java不好吗,另外我这边Studio会变红,编译是正常的. default

EastWoodYang commented 5 years ago

R类就涉及到兼容性问题了。。。

变红的话,试试 sync clean rebuild 或重新打开AS....