我正在使用 Gson 类将 JSON 字符串数据转换为Intent
对象。但我得到了例外。
意图的 JSON 字符串:
{
"targetIntent":{
"mAction":"android.intent.action.VIEW",
"mData":{
"authority":{
"decoded":"com.android.contacts",
"encoded":"com.android.contacts"
},
"fragment":{
},
"path":{
"decoded":"NOT CACHED",
"encoded":"/contacts/lookup/1471i541ce89b89ad6a59"
},
"query":{
},
"scheme":"content",
"uriString":"NOT CACHED",
"host":"NOT CACHED",
"port":-2
},
"mFlags":0
}
}
转换代码:
Intent targetIntent =
gson.fromJson(histroyDataObject.getString("targetIntent"), Intent.class);
这给出了例外:
Cause: Instantiation Exception
Detail Message: Failed to invoke private android.net.Uri() with no args
堆栈跟踪:
08-31 01:08:19.045: W/System.err(290): Caused by: java.lang.InstantiationException: android.net.Uri
08-31 01:08:19.065: W/System.err(290): at java.lang.reflect.Constructor.constructNative(Native Method)
08-31 01:08:19.065: W/System.err(290): at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
08-31 01:08:19.065: W/System.err(290): at com.google.gson.internal.ConstructorConstructor$2.construct(ConstructorConstructor.java:91)
08-31 01:08:19.076: W/System.err(290): ... 24 more
谢谢你的帮助。