2015-12-08 19 views
6

çökmesini sağlar Ben java/android için yeni değilim, bu yüzden bu çözmek için oldukça kolay bir şey olduğunu umuyoruz.libGDX kurulum Java 8 hangi android 1.

Android Studio'ya aktardığım bir proje oluşturmak için libGDX's setup kullanıyorum. Ben Supplier arayüzü sadece Java 8 için kullanılabilir olduğunu bilmiyordum ve anladığım kadarıyla, tüm android/html/masaüstü/ios sürümleri tarafından paylaşılan bir kütüphane içine derler çekirdek modülünde kullanılmış oyun. Masaüstü sürümü iyi çalışıyor (Java 8 yüklü), ama benim android uygulaması NoClassDefFoundError hatasıyla çöküyor (BTW, hata mesajı yazdığım sınıfların ismini gösteriyordu ve Supplier değil, ancak hata en kısa sürede kayboldu) her bir referansı Supplier'a kaldırdım ve onları eklediğimde geri geldim, dolayısıyla görünüşe göre hata mesajı gerçek problem sınıfını göstermiyor).

Android modülümde Supplier'u kullanmayı denediğimde, sınıfı içe aktarmama bile izin vermeyecek, bu yüzden bu Java sürümünü desteklemediğini bilecek, ancak bunu çekirdekte kullanmama izin verecek. herhangi bir uyarı olmadan modül. Eminim, Supplier numaralı başvuruya olan referansları kaldırmak sorunu çözecektir, ancak bu düzeltme, herhangi bir Java 8 özelliğini yanlışlıkla kullanmam durumunda çalışma zamanı hatalarına neden olabilir, bu yüzden sorunu çözmek için iyi bir yol değil.

Java 8'i kullanmak için projede nerede olduğunu bilmiyorum ve görünüşe göre tüm yapılandırma ile ilgili bir sürü .gradle, .xml ve .iml dosyaları gibi görünüyor.

apply plugin: "java" 

sourceCompatibility = 1.6 
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8' 

sourceSets.main.java.srcDirs = [ "src/" ] 


eclipse.project { 
    name = appName + "-core" 
} 

Android stüdyo sourceCompatibility = 1.6 hat gri gösterir ve bunu üzerine geldiğinizde "Atama kullanılmaz" diyor: Burada çekirdek modülünde benim build.gradle dosyasıdır. Yani bu problemin bir parçası olabilir. Burada, aynı zamanda

<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false"> 

kök build.gradle dosyada core bölümdür:

Benim core.iml dosya çok bu satırı içerir Yani

project(":core") { 
    apply plugin: "java" 


    dependencies { 
     compile "com.badlogicgames.gdx:gdx:$gdxVersion" 
    } 
} 

, ben izin önlemek için değiştirmek gerektiğini benim ana projemde Java 8 kullanıyorum?

cevap

1

sürümünüzü hedeflemek için sourceCompatibility ile targetCompatibility özniteliğini eklemeniz gerektiğini düşünüyorum.

allprojects { 
    apply plugin: 'java' 
    sourceCompatibility = 1.6 
    targetCompatibility = 1.6 
} 

Ayrıca proje kullanımıdır sürümü ile gradle.properties dosyada java varsayılan yolunu kontrol etmek gerekir.

Can’t build Java 1.8 even with proper Java version in use ve Gradle finds wrong JAVA_HOME even though it's correctly set ayarlarına bakın ve set java derleme sürümü gradle hakkında daha fazla bilgi edinin.