我有一个自己创建的jar,来自另一个作为库导入到我的另一个项目中。当我更改该项目中的代码并导出一个新的jar来替换旧的时,我再也无法运行我的应用了。我只收到以下错误:
我尝试删除,添加和添加依赖项,添加为库。似乎没什么用。我也做了干净的构建和重建。
答案 0 :(得分:25)
过去,当我们的项目 使用不同于编译库的Java版本进行编译时,我们已经看到了这个问题。 {{3 }}仅用于magic number,因此这不是问题所在。问题是java版本(0034.0000 == Java 8)。
最简单的方法是定位Java 6,这可能需要从代码中删除更新的语法。在我们的例子中,项目和库都是我们的,所以我们能够添加以下内容来强制我们需要的Java版本:
对于android库,将此代码添加到“android”扩展对象:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
...
}
对于java库,在“顶级”添加此代码:
apply plugin: 'java'
version '1.8.1'
group 'com.yourcompany.package'
sourceCompatibility = JavaVersion.VERSION_1_6 //these two lines
targetCompatibility = JavaVersion.VERSION_1_6 //are the only ones that matter
注意:最后两行是唯一重要的行,我添加了其他行只是为了显示这些行所属的位置,相对于gradle构建文件的其余部分。
答案 1 :(得分:1)
对我们来说,这是由Android SDK构建工具版本引起的。在v23.x上遇到问题,但不是v22.x.您需要卸载v23 for cordova以选择v22。
可能是一种症状而不是一种原因,但这可能会在同样的情况下解除某些人的压力。
答案 2 :(得分:0)
虽然您的问题似乎已修复,但我最终遇到了类似的错误(同时从developer.android.com构建示例)。如果它对其他人有帮助,我可以通过将JAVA_HOME设置为适当的值来解决它。就我而言,它是:
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
答案 3 :(得分:0)
中加入:
sourceCompatibility = JavaVersion.VERSION_X_X
targetCompatibility = JavaVersion.VERSION_X_X
在Android项目gradle文件中,Java库gradle文件为我工作。
对不起,我会有+ 1'但它没有足够高的声誉