我正在尝试从我的库中构建一个@aar包,用作客户端项目中的依赖项.
在我的库模块中,我正在使用:
compileOptions{
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Run Code Online (Sandbox Code Playgroud)
在达到客户端依赖关系之前,我想要解决代码并使Java 7兼容.这意味着我需要实际提供一个@aar包,其中Lambda函数和所有其他Java 8相关功能已经移植到Java 7字节码.
我面临的问题是在库模块上使用:
apply plugin: 'com.android.library'
Run Code Online (Sandbox Code Playgroud)
没有执行desugaring任务,这意味着字节码包含Java 8相关的导入,如:
java.lang.invoke.LambdaMetafactory
Run Code Online (Sandbox Code Playgroud)
这将迫使我的客户端将他的编译选项更新为JavaVersion.VERSION_1_8,这是我想要避免的事情.
所以作为最后一个问题:'com.android.library'插件执行的desugaring任务是仅在'com.android.application'插件中可用?如果是这种情况,请你帮我提一些关于如何将这一步也包含在库插件中的提示?