![](/img/trans.png)
[英]Android Studio/Gradle: set Java target version for Java Library module
[英]Pure Java 8 Library module in Android Studio/Gradle Project
我有一个带有纯Java 8库模块的Android Studio项目。 这是该库的完整gradle.build文件:
apply plugin: 'java-library'
dependencies {
testImplementation 'junit:junit:4.12'
}
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
代码经过测试,运行正常。
我遇到的问题是我已经构建了项目,然后尝试在另一个不使用Java 7(而不是8)的Android项目中使用构建的.jar文件。 显然,代码不起作用。 但是,我很惊讶没有编译时错误表明库不兼容。 相反,我只是首先注意到调用运行时函数时的不兼容性。
我是如何编写Java模块的? 或者,您是否只会遇到库不兼容的运行时错误? 我期待编译时错误。
另外,请告诉我如何正确编译,以便我可以在Android Studio中获得编译时错误,表明库是使用较新的Java版本编译的。
为了完整起见,我在使用Java 8库模块时遇到以下运行时错误
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/Base64;
在API级别26( https://developer.android.com/reference/java/util/Base64.html ) 中添加了java.util.Base64 。 您必须使用android.util.Base64 ( https://developer.android.com/reference/android/util/Base64 。)
对于通用库,我使用Google Guava 。
<dependency>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
<type>jar</type>
<version>14.0.1</version>
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.