2016-07-04 1 views
0

"연락처"개체 및 해당 자식 개체의 목록을 포함하는이 JSON 개체가 있습니다. gson을 사용하여 ContactModelArrayList 개체를 JSON 개체에 넣으려고하지만 누락 된 형식 매개 변수 예외를 반환합니다. 이 같은 유형 받고 있어요 :개체의 ArrayList에 대한 Gson 누락 유형 매개 변수

Type listType = new TypeToken<ArrayList<ContactModel>>() { }.getType();

을 그리고 다음과 같은 목록을 얻으려고 노력 :

-keep class .somerepo.contactModel.** { *; } 
:
GsonBuilder builder = new GsonBuilder(); 
Gson gson = builder.create(); 

ArrayList<ContactModel> = gson.fromJson(jsonString, listType); 

내 난독의

나는이 같은 개체 패키지를 유지

비슷한 질문을 보았지만 그 중 아무도 내 문제를 해결하지 못했습니다.

FATAL EXCEPTION : AsyncTask를 # 2 공정 : co.arsh.grapefruit.mci, PID : java.lang.RuntimeException가 10,360 : 여기

는 스택 트레이스이다 doInBackground을 (실행 중 오류가 발생) android.os.AsyncTask $ 3.done (AsyncTask.java:300) 에서 java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:355) at java.util.concurrent.FutureTask.setException (FutureTask. java : 222) 에서 java.util.concurrent.FutureTask.run (FutureTask.java:242) android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587) at java.lang.Thread.run (Thread.java:841) 발생 원인 : java.lang.RuntimeException : 누락 된 유형 매개 변수. com.google.gson.reflect.TypeToken.getSuperclassTypeParameter (SourceFile : 84) com.google.gson.reflect.TypeToken. (SourceFile : 62) at semereop.contact.Contact $ 1 (SourceFile : 184) somerepo.contact.Contact.getContactsFromJson (SourceFile의 184)에

GSON에서

getContactsFromJson 방법 복귀 ArrayList<ContactModel>.

+0

전체 스택 추적을 공유하십시오. – sidgate

+0

@sidgate 게시물을 업데이트했습니다. –

+0

변환하려는 모델과 문자열을 게시 할 수 있습니까? – Calixto

답변

4

당신은 당신의 난독 파일에 정보를 추가 할 수 있습니다

자세한 내용
# Gson uses generic type information stored in a class file when working with fields. 
# Proguard removes such information by default, so configure it to keep all of it. 
-keepattributes Signature 
-keepattributes EnclosingMethod 
-keepattributes InnerClasses 
-keepattributes Annotation 

# For using GSON @Expose annotation 
-keepattributes *Annotation* 

# Gson specific classes 
-keep class sun.misc.Unsafe { *; } 

# Application classes that will be serialized/deserialized over Gson 
-keep class com.google.gson.examples.android.model.** { *; } 

이 GSON 저장소에 제공 Proguard와 파일의 this example 확인하십시오.

+1

이 답변에 추가하려면 : -keepattributes 만 기본 proguard 구성을 사용할 때 서명이 필요합니다. –