Error al migrar el proyecto Libgdx de Eclipse a Android Studio
Estoy intentando migrar mi juego existente (escrito en libgdx) de Eclipse a Android Studio. Después de migrar mi trabajo de escritorio de trabajo correctamente, pero tengo problema con el proyecto de Android. En android uso anuncios de Admob.
Consigo el mensaje de error siguiente:
- AppWarp se bloquea en Android, Libgdx
- Pasando varias texturas a shader en LibGDX
- Eclipse se bloquea con límite de gastos generales de GC superado después de enlazar servicios de Google Play
- ¿Cómo usar el sombreado de píxeles para lograr un texto suave?
- Libgdx Creación de controles en pantalla
Como puedes ver, se instala Android Support Repository
Mi estructura de proyecto:
En el archivo Project Gradle tengo esto:
buildscript { repositories { mavenCentral() } dependencies { classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6' classpath 'com.android.tools.build:gradle:1.5.0' classpath 'org.robovm:robovm-gradle-plugin:1.9.0' } } allprojects { apply plugin: "eclipse" apply plugin: "idea" version = '1.0' ext { appName = 'My Game' gdxVersion = '1.7.1' roboVMVersion = '1.9.0' box2DLightsVersion = '1.4' ashleyVersion = '1.7.0' aiVersion = '1.6.0' } repositories { jcenter() mavenCentral() maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } maven { url 'https://oss.sonatype.org/content/repositories/releases/' } } } project(":desktop") { apply plugin: "java" dependencies { compile project(":core") compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop" } } project(":android") { apply plugin: "android" configurations { natives } dependencies { compile project(":core") compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.google.android.gms:play-services:8.4.0' compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi" natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi" natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a" natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86" compile fileTree(dir: '../libs', include: '*.jar') } } project(":ios") { apply plugin: "java" apply plugin: "robovm" configurations { natives } dependencies { compile project(":core") compile "org.robovm:robovm-rt:$roboVMVersion" compile "org.robovm:robovm-cocoatouch:$roboVMVersion" compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion" compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-ios" } } project(":html") { apply plugin: "gwt" apply plugin: "war" dependencies { compile project(":core") compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion" compile "com.badlogicgames.gdx:gdx:$gdxVersion:sources" compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources" compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion:sources" compile "com.badlogicgames.gdx:gdx-box2d-gwt:$gdxVersion:sources" } } project(":core") { apply plugin: "java" dependencies { compile "com.badlogicgames.gdx:gdx:$gdxVersion" compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" compile fileTree(dir: '../libs', include: '*.jar') } } tasks.eclipse.doLast { delete ".project" }
Aquí está Android Gradle archivo:
apply plugin: 'com.android.application' android { buildToolsVersion "23.0.2" compileSdkVersion 23 defaultConfig { targetSdkVersion 23 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest.setRoot('tests') } } // needed to add JNI shared libraries to APK when compiling on CLI tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask -> pkgTask.jniFolders = new HashSet<File>() pkgTask.jniFolders.add(new File(projectDir, 'libs')) } // called every time gradle gets executed, takes the native dependencies of // the natives configuration, and extracts them to the proper libs/ folders // so they get packed with the APK. task copyAndroidNatives() { file("libs/armeabi/").mkdirs(); file("libs/armeabi-v7a/").mkdirs(); file("libs/x86/").mkdirs(); configurations.natives.files.each { jar -> def outputDir = null if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a") if (jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi") if (jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86") if (outputDir != null) { copy { from zipTree(jar) into outputDir include "*.so" } } } } task run(type: Exec) { def adb = "$System.env.ANDROID_HOME/platform-tools/adb" commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.flexsolutions.bubbles.era.android/com.flexsolutions.bubbles.era.android.AndroidLauncher' } // sets up the Android Eclipse project, using the old Ant based build. eclipse { // need to specify Java source sets explicitely, SpringSource Gradle Eclipse plugin // ignores any nodes added in classpath.file.withXml sourceSets { main { java.srcDirs "src", 'gen' } } jdt { sourceCompatibility = 1.6 targetCompatibility = 1.6 } classpath { plusConfigurations += project.configurations.compile containers 'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES' } project { name = appName + "-android" natures 'com.android.ide.eclipse.adt.AndroidNature' buildCommands.clear(); buildCommand "com.android.ide.eclipse.adt.ResourceManagerBuilder" buildCommand "com.android.ide.eclipse.adt.PreCompilerBuilder" buildCommand "org.eclipse.jdt.core.javabuilder" buildCommand "com.android.ide.eclipse.adt.ApkBuilder" } } // sets up the Android Idea project, using the old Ant based build. idea { module { sourceDirs += file("src"); scopes = [COMPILE: [plus: [project.configurations.compile]]] iml { withXml { def node = it.asNode() def builder = NodeBuilder.newInstance(); builder.current = node; builder.component(name: "FacetManager") { facet(type: "android", name: "Android") { configuration { option(name: "UPDATE_PROPERTY_FILES", value: "true") } } } } } } }
He intentado cambiar la ayuda de androide a la otra versión, pero consigo el mismo error.
Cualquier ayuda sería apreciada.
Gracias
- LibGDX - ImageButton - Configuración de la imagen con fondo
- Java.lang.NoClassDefFoundError (libgdx)
- Animación en libgdx
- LibGDX - Texto sobre textura en tile / tilemaps
- No se puede dibujar ningún tipo de botón en la pantalla de menú del juego libgdx (android)
- ¿Cómo libgdx detecta la presencia del teclado?
- Android: mover a la ubicación de toque después del lanzamiento con libgdx / universal-tween-engine
- La UI de configuración de Libgdx da 2 errores inesperados en el nuevo proyecto GWT
Creo que su problema con la importación del proyecto es causado por este
buildToolsVersion "19.1.0" compileSdkVersion 19
Estás intentando usar un buildTools más antiguo que tus bibliotecas de soporte de Android:
compile 'com.android.support:support-v4:21.0.0' compile 'com.android.support:appcompat-v7:21.0.0'
Todo lo que necesitas hacer es cambiar los valores anteriores a 21.
Sólo tienes que seguir estos pasos:
Pre requisitos
Asegúrese de que ha descargado los últimos
extras
, así como elAndroid 5.0 SDK
través del SDK-Manager.
Android Studio
Abra el archivo
build.gradle
de su app-module y cambie sucompileSdkVersion
a 21. No es básicamente necesario cambiar eltargetSdkVersion
SDK-Version a 21 pero es recomendable ya que siempre debe apuntar a la última versión de Android Build-Version . Al final, gradle-file se verá así:android { compileSdkVersion 21 // ... defaultConfig { // ... targetSdkVersion 21 } }
Asegúrese de sincronizar su proyecto después.
Cambie también su buildToolsVersion:
buildToolsVersion "19.1.0"
a
buildToolsVersion "21.1.2"
Deberia de funcionar
Si desea hacer su proyecto más reciente que el anterior, build.gradle
aquí un build.gradle
de mi proyecto Android creado hace un tiempo:
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.example.piotr.myapplication" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.google.android.gms:play-services:8.4.0' }
EDIT: Algo todavía falta. Pruebe estos pasos
-
Actualice sus dependencias a la última versión como se indica más arriba.
-
Añadir esta línea
`Apply plugin: 'com.android.application' antes
antes de
`android { buildToolsVersion "19.1.0"`
y cambio
repositories { mavenCentral() ...
con
repositories { jcenter() mavenCentral() ...
Espero que ayude
Finalmente encuentro la solución
Creé el nuevo proyecto libGDX en blanco usando la libGDX project setup
con el mismo paquete que mi configuración anterior, y copio todas mis clases del proyecto antiguo a este nuevo. Después de todo hecho consigo la versión de trabajo de mi código.
No noté ninguna diferencia en buld.gradle presentado como comentarios y @piotrek1543
respuestas.
No sé exactamente cuál fue el problema, pero mi proyecto ahora funciona.
Espero que esto ayude a nadie en el futuro!
Muy triste, Este error aparece cada vez que incluyo el gestor de repositorios nexus en la configuración de gradle
repositories{ maven{ url "http://localhost:8081/nexus/content/groups/public/" } }
Me vi obligado a eliminar eliminar el repositorio de nexo local, y compila. Me siento cada vez más, google es insensible a las necesidades de los desarrolladores de los países en desarrollo, donde Internet es realmente caro y lento. Me vi obligado a irme solo
repositories{ jcenter() }
- Retrofit: Envío de la solicitud POST al servidor en android
- Conexión PhoneGap con el servicio localhost webservice