2016-08-09 8 views
1

LibgdxのJsonBeansと非常に混同しています。 &ゲームの進行状況をローカルストレージに保存しようとしています。初期化ファイル:LibgdxでのJSONの作成と読み取り

file=Gdx.files.local(FILENAME); 

読むJSON:

if (file.exists()) { 
     JsonReader jsonReader = new JsonReader(); 
     JsonValue jv = jsonReader.parse(file.reader()); 
     levels = jv.getInt(LEVELS, 1); 
} 

アプリケーションはlevels = jv.getInt(LEVELS, 1);NullPointerExceptionで死ぬ(jvnullです)。

しかし、書き込みがあまりにも動作しない、出力ファイルは空です:

Json json=new Json(JsonWriter.OutputType.json); 
json.setWriter(file.writer(true)); 
json.writeObjectStart(); 
json.writeValue(LEVELS, levels); 
json.writeObjectEnd(); 

任意の提案ですか?前もって感謝します。

+0

これは問題ありません。あなたのファイルはどこかで定義された型を持っていますか?あなたの畑のようなもの? – James

+0

あなたが何を意味しているのか分かりません:) – constantinopolskaya

答えて

1

Gdx.files.localの代わりにGdx.files.internalを試してください。これは、ローカルストレージに書き込みおよびローカルストレージから読み取る権限がないためです。 Androidの追加の書き込み/の管理者として、デスクトップの実行のために

(私はその十分だと思う)

は、Androidマニフェストに権限をお読みください。

0

Goddamn、Libgdx wikiのチュートリアルは、非常に参考になりません。 最初に、あなたが設定する必要があるものは全く言及していませんWriterからJsonインスタンスを読み取った後、2番目に、ディスク上のjsonを録音するすべての作業がJsonクラスで行われていますが、それはありません。あなた自身でこれを行う必要があります:

file.writeString(json.prettyPrint(progress), false); 

その後、すべてが機能しました。みんな、ありがとう。

関連する問題