我有一个Android Studio项目,其中包含一个纯Java8库模块。以下是该库的完整gradle.build文件:
apply plugin: 'java-library'
dependencies {
testImplementation 'junit:junit:4.12'
}
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
代码已经经过测试并且运行良好。
我遇到的问题是,我构建了该项目,然后尝试在另一个不使用Java 7(而是不使用Java 8)的Android项目中使用已构建的.jar文件。显然,代码无法工作。但是,令我惊讶的是,并没有编译时错误表明库不兼容。相反,只有在调用运行时函数时才会注意到不兼容性。
我在编译Java模块方面做错了什么吗?还是预期的行为是你只会得到库不兼容的运行时错误?我期望编译时出现错误。
此外,请告诉我如何正确编译,以便我可以在Android Studio中获得编译时错误,指示库是使用较新的Java版本编译的。
为了完整起见,当我使用我的Java 8库模块时,我会收到以下运行时错误。
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/Base64;