Hi folks, just tried this on the latest nightly (2012-12-06), but it appears to be failing on android atm, is this expected? or am I doing something stupid?
Tested on: asus 300, android 4.1
code snippet:
[java]
public void save(List<ScoreData> sd, JmeSystem.StorageFolderType type) {
File dataStore = JmeSystem.getStorageFolder(type);
String path = dataStore.getAbsolutePath();
if (!dataStore.exists()){
Log.e(TAG,"Data store does not exist: " + path+" creating…");
if (dataStore.mkdirs()){
Log.i(TAG,"Data store created");
}
}
if (dataStore.exists()){
Log.i(TAG, "Data store does exist"+path);
File t = new File(path+File.separator+tableName+".scd");
if (t!=null){
Log.i(TAG, "HichScore File does exist, path="+path+File.separator+tableName+".scd isFile:" +t.isFile() +" writeable:"+t.canWrite());
}
t=null;
}
else{
Log.e(TAG,"Data store does not exist: " + path);
}
BufferedWriter writer = null;
try{
writer = new BufferedWriter(new FileWriter(path+File.separator+tableName+".scd"));
writer.write("");
for (ScoreData s:sd){
writer.append(s.toCSV());
writer.append("n");
}
}
catch(Exception e){
Log.e(TAG,"Failed to write highscore data! using storeType:["+type+"] path: [" +path+ "] Exception message:" + e.getMessage());
if (!type.equals(JmeSystem.StorageFolderType.External)){
Log.e(TAG,"Retrying using External Storage");
save(sd,JmeSystem.StorageFolderType.External);
}
else
Log.e(TAG,"Giving up, unable to store data at external location");
}
finally{
if (writer != null)
try{writer.close();}
catch(Exception e){
Log.e(TAG,"Failed to close highscore data! "+e.getMessage());
}
}
}
[/java]
Log Snippet:
I/JmeSystem( 7605): INFO JmeSystemDelegate 1:25:46 PM Storage Folder Path: /.jme3
I/System.out( 7605): ScoreManager–>Data store does not exist: /.jme3 creating…
I/System.out( 7605): ScoreManager–>Data store does not exist: /.jme3
I/System.out( 7605): ScoreManager–>Failed to write highscore data! using storeType:[Internal] path: [/.jme3] Exception message:/.jme3/test.scd: open failed: ENOENT (No such file or directory)
I/System.out( 7605): ScoreManager–>Retrying using External Storage
I/JmeSystem( 7605): INFO JmeSystemDelegate 1:25:46 PM Storage Folder Path: /.jme3
I/System.out( 7605): ScoreManager–>Data store does not exist: /.jme3 creating…
I/System.out( 7605): ScoreManager–>Data store does not exist: /.jme3
I/System.out( 7605): ScoreManager–>Failed to write highscore data! using storeType:[External] path: [/.jme3] Exception message:/.jme3/test.scd: open failed: ENOENT (No such file or directory)
I/System.out( 7605): ScoreManager–>Giving up, unable to store data at external location