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

Respuesta
 
Herramientas
  #1  
Viejo 22/02/16, 20:33:22
Array

[xs_avatar]
leviatan7 leviatan7 no está en línea
Usuario poco activo
 
Fecha de registro: feb 2016
Mensajes: 3
Tu operador: Movistar

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
Array

[xs_avatar]
mocelet mocelet está en línea ahora
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

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.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!

Ú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
Array

[xs_avatar]
leviatan7 leviatan7 no está en línea
Usuario poco activo
 
Fecha de registro: feb 2016
Mensajes: 3
Tu operador: Movistar

Buenas, he probado con un AVD de API 18 y funciona. Muchisimas gracias
Responder Con Cita
  #4  
Viejo 24/02/16, 21:59:31
Array

[xs_avatar]
Dexafree Dexafree no está en línea
Mr. FAQMan
· Votos compra/venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Tu operador: Movistar
Marcamos como Solucionado
Responder Con Cita
Respuesta

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



Hora actual: 12:15:15 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /