我是java/android新手,所以我希望這是一個非常容易解決的問題。libGDX安裝程序允許我使用在Android中崩潰的Java 8
我用libGDX's setup創建了一個項目,然後導入到了Android Studio。我不知道Supplier
接口僅適用於Java 8,並在核心模塊中使用它,據我瞭解,它編譯成一個庫,由所有android/html/desktop/ios版本共享遊戲。桌面版運行良好(我安裝了Java 8),但我的Android應用程序崩潰,出現NoClassDefFoundError
錯誤(順便說一句,錯誤信息顯示我寫的類的名稱,而不是Supplier
,但錯誤消失,只要我刪除了每個對Supplier
的引用,並在添加它們時返回,因此顯然錯誤消息不顯示實際的問題類)。
如果我嘗試在我的android模塊中使用Supplier
,它甚至不會讓我導入類,所以它知道它不支持該Java版本,但它會很樂意讓我在內核中使用它模塊沒有任何警告。我確信刪除對Supplier
的引用將解決問題,但如果我無意中使用任何Java 8功能,此修復程序可能會導致運行時錯誤,因此不是一種很好的解決方法。
我不知道該項目在哪裏設置爲使用Java 8,並且似乎有一堆.gradle,.xml和.iml文件,這些文件顯然都與配置有關。這是我build.gradle
文件中的核心模塊:
apply plugin: "java"
sourceCompatibility = 1.6
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
sourceSets.main.java.srcDirs = [ "src/" ]
eclipse.project {
name = appName + "-core"
}
Android的工作室展示了sourceCompatibility = 1.6
線變灰,並說「分配不使用」時,我在它懸停。所以這可能是問題的一部分。
我core.iml
文件中包含這一行太:
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
而且,這裏是根build.gradle
文件core
部分:
project(":core") {
apply plugin: "java"
dependencies {
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
}
}
所以,我應該怎麼改變,以防止它讓我在我的核心項目中使用Java 8?