La configuración de libGDX me permite usar Java 8 que se bloquea en Android
Soy nuevo en java / android, por lo que espero que esto sea algo bastante fácil de resolver.
He utilizado la configuración de libGDX para crear un proyecto, que luego importé a Android Studio. No sabía que la interfaz de Supplier
sólo estaba disponible para Java 8, y la utilizaba en el módulo central, que hasta donde yo entiendo, se compila en una biblioteca que es compartida por todas las versiones de android / html / desktop / ios de la juego. La versión de escritorio funciona bien (tengo Java 8 instalado), pero mi aplicación androide se bloquea con un error NoClassDefFoundError
(BTW, el mensaje de error estaba mostrando el nombre de las clases que escribí, y no Supplier
, pero el error desapareció tan pronto como I Eliminado todas las referencias al Supplier
y volvió cuando las agregé, así que al parecer el mensaje de error no muestra la clase de problema real).
- Libgdx SpriteBatch render a la textura
- Exportar firmado APK con error de ProGuard
- Tween aditivo con Universal Tween Engine en libgdx?
- Varias cámaras en libgdx (probablemente similar en otros marcos)
- Libgdx extraño modelado - error de profundidad?
Si intento usar Supplier
en mi módulo android, ni siquiera me permitirá importar la clase, por lo que sabe que no es compatible con la versión Java, pero me dejará usarla en el módulo principal sin ninguna advertencia. . Estoy seguro de que la eliminación de referencias a Supplier
resolverá el problema, pero esta corrección puede provocar errores de tiempo de ejecución más adelante si inadvertidamente uso cualquier característica de Java 8, por lo que no es una buena manera de solucionarlo.
No sé en qué parte del proyecto se va a usar Java 8, y parece que hay un montón de archivos .gradle, .xml y .iml que aparentemente están relacionados con la configuración. Aquí está mi archivo build.gradle
en el módulo principal:
apply plugin: "java" sourceCompatibility = 1.6 [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' sourceSets.main.java.srcDirs = [ "src/" ] eclipse.project { name = appName + "-core" }
El estudio de Android muestra la línea sourceCompatibility = 1.6
atenuada y dice que "Asignación no se usa" cuando vuelvo sobre ella. Así que eso puede ser parte del problema.
Mi archivo core.iml
contiene también esta línea:
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
Además, aquí está la sección de core
en el archivo raíz build.gradle
:
project(":core") { apply plugin: "java" dependencies { compile "com.badlogicgames.gdx:gdx:$gdxVersion" } }
Entonces, ¿qué debo cambiar para evitar que me permita usar Java 8 en mi proyecto principal?
- Los colores de ShapeRenderer dejan de funcionar al renderizar imágenes con SpriteBatch
- Cómo cargar correctamente las texturas con libgdx assetmanager
- LibGDX Servicios de juegos de Google Play - Android
- ¿Cómo escalar sprites en libgdx según las resoluciones de pantalla?
- Libgdx app.exit () en Android no se cierra la aplicación
- Servicios de juegos de Google Play: Bienvenido <Name> Popup Inconsistent
- Libgdx y la aplicación android. Imagen como fondo
- Laggy proyecto vacío a 60FPS
Creo que es necesario agregar el atributo sourceCompatibility
con sourceCompatibility
en gradle para orientar su versión de java
.
allprojects { apply plugin: 'java' sourceCompatibility = 1.6 targetCompatibility = 1.6 }
También es necesario comprobar la ruta predeterminada de java
en el archivo gradle.properties
con la versión de su proyecto es el uso.
Usted necesita comprobar No se puede construir Java 1.8 incluso con la versión de Java adecuada en uso y Gradle encuentra erróneo JAVA_HOME a pesar de que está correctamente configurado para obtener más idea acerca de conjunto java
compilar versión gradle.
- Comportamiento personalizado con el diseño del coordinador
- ¿Cómo mostrar la página de contenido Html sabia usando webview en android?