
在我的库模块中,我正在使用:
compileOptions{ sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8} 在达到客户端依赖关系之前,我想要解决代码并使其与Java 7兼容.这意味着我需要实际提供一个@aar包,其中Lambda函数和所有其他Java 8相关功能已经移植到Java 7字节码.
我面临的问题是在库模块上使用:
apply plugin: 'com.androID.library'
没有执行desugaring任务,这意味着字节码包含Java 8相关的导入,如:
java.lang.invoke.LambdaMetafactory
这将迫使我的客户端将他的编译选项更新为JavaVersion.VERSION_1_8,这是我想要避免的事情.
所以作为最后一个问题:
令人厌恶的任务是由’com.androID.library’插件执行还是仅在’com.androID.application’插件中可用?如果是这种情况,请你帮我提一下如何将这一步也包含在库插件中?
当然,有误导的是,在库项目中,仍然需要指定Java 8支持选项,尽管它们实际上并不重要(为了生成.aar文件,无论如何都将只有javac步骤,没有desugaring / dexing ):
更新:第二个想法 – 我现在确信这是’com.androID.library’插件中的一个错误. Desugaring仍然会生成.class文件,所以没有强大的理由可以跳过desugar步骤,如果这是由gradle.build配置规定的,例如:
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_7} 总结 以上是内存溢出为你收集整理的Android – @aar包中的Desugar类全部内容,希望文章能够帮你解决Android – @aar包中的Desugar类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)