2016-08-09 5 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을 사용해보십시오. 관리자로 바탕 화면 실행에 대한

은 추가 쓰기/매니페스트 안드로이드에 대한 읽기 권한 안드로이드에 대한

(내가 그 정도로 생각).

0

Goddamn, Libgdx 위키의 튜토리얼은 매우 유용하지 않습니다. 무엇보다도 디스크에 json을 레코딩하는 작업이 모두 Json 클래스로 수행되었지만 아직 느껴지지 않은 느낌을 읽은 후에는 WriterJson 인스턴스로 설정해야한다고 언급 한 적이 없습니다. 당신 스스로 혼자 할 필요가 있습니다 :

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

그 후 모두 작동합니다. 모두에게 감사드립니다.