Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 22/02/16, 20:33:22
Avatar de leviatan7
leviatan7 leviatan7 no está en línea
Usuario poco activo
Mensajes: 3
 
Fecha de registro: feb 2016
Mensajes: 3
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Error de permisos en juego 2D LibGdx

Buenas. He creado un juego 2D utilizando LibGdx y en Desktop me funciona perfectamente, pero en android me salta la siguiente excepción:

com.badlogic.gdx.utils.GdxRuntimeException: Error writing file: highscores.dat (External)
at com.badlogic.gdx.files.FileHandle.writeString(File Handle.java:353)
at com.badlogic.gdx.files.FileHandle.writeString(File Handle.java:339)
at com.mygdx.game.game.HighScores.save(HighScores.jav a:52)
at com.mygdx.game.game.HighScores.load(HighScores.jav a:15)
at com.mygdx.game.pantallas.PantallaFinJuego.show(Pan tallaFinJuego.java:93)
at com.badlogic.gdx.Game.setScreen(Game.java:61)
at com.mygdx.game.pantallas.PantallaJuego$5.run(Panta llaJuego.java:368)

...........
...........


Mi AndroidManifest:

android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="23" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_ST ORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STO RAGE"/>

<application
android:allowBackup="true"


......................

La clase donde da el error:

[color="red"]public class HighScores {
public static String[] highscores = { "0", "0", "0" };
public static String archivoHighscores = "highscores.dat";

public static void load() {

FileHandle arquivo = Gdx.files.external("highscores.dat");
String linea;
if (!arquivo.exists())
HighScores.save();
linea=arquivo.readString();
highscores=linea.split(",");
// ---- CÓDIGO ----
}

public static void engadirPuntuacion(int puntuacion) {
boolean encontrado = false;
int i = 0;
load();
Responder Con Cita


  #2  
Viejo 22/02/16, 20:51:56
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Más que de permisos es que desde KitKat la escritura en la SD por parte de apps es o bien imposible o limitada.

Lo mejor es que uses los ficheros solo para leer y las escrituras las hagas sólo con preferencias. Así la implementación te vale en escritorio, Android, web, iOS, etc.

P.D.: Además que en este caso es más limpio tener unas preferencias que crear un fichero, parsearlo, etc. cuando al final quieres tres valores nada más que con tres valores en las preferencias lo resuelves rápido.

Última edición por mocelet Día 22/02/16 a las 20:54:48
Responder Con Cita
  #3  
Viejo 23/02/16, 19:14:19
Avatar de leviatan7
leviatan7 leviatan7 no está en línea
Usuario poco activo
Mensajes: 3
 
Fecha de registro: feb 2016
Mensajes: 3
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Buenas, he probado con un AVD de API 18 y funciona. Muchisimas gracias
Responder Con Cita
  #4  
Viejo 24/02/16, 21:59:31
Avatar de Dexafree
Dexafree Dexafree no está en línea
Mr. FAQMan
Mensajes: 8,021
Compra y venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Versión de ROM: Android 4.1.1 Jelly Bean
Versión de Radio: KF1
Tu operador: Movistar
Mencionado: 65 comentarios
Tagged: 2 hilos
Marcamos como Solucionado
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 18:15:41 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007