alibaba / atlas

A powerful Android Dynamic Component Framework.
Apache License 2.0
8.12k stars 1.47k forks source link

register自定义transform 不起效,打包时还是用的.gradle 下的jar #342

Open yangbo524 opened 5 years ago

yangbo524 commented 5 years ago

register自定义transform 不起效,打包时还是用的.gradle 下的jar,导致自定义的transform中输出的jar没起作用

lilongAAAA commented 5 years ago

能否给个例子

yangbo524 commented 5 years ago

for (JarInput jarInput : input.getJarInputs()) { if (!inMainDex(jarInput)) { listFiles.add(jarInput); continue; } mainJars.add(jarInput.getFile()); if (!validJar(jarInput)){ continue; } logger.verbose("Jar input %s", jarInput.getFile().toString()); List dexArchives = processJarInput( transformInvocation.getContext(), false, jarInput, outputProvider); cacheItems.putAll(jarInput,dexArchives); }

AtlasDexArchiveBuilderTransform中 inMainDex对mainjar 进行了处理,导致自定义的transorform 输出 jar 一直为false,只能通过updateMainDexFiles AtlasBuildContext.atlasMainDexHelperMap才可以,这样所有自定义的transform都必须与AtlasBuildContext.atlasMainDexHelperMap 耦合

lilongAAAA commented 5 years ago

嗯,这个会在下个版本解耦掉

yangbo524 commented 5 years ago

请问下这块儿进行处理了么

yangbo524 commented 4 years ago

自定义transform的out必须更新到AtlasBuildContext.atlasMainDexHelperMap 这个map中才其效果,这个问题处理了么?