Google DFP広告のPublisherInterstitialAdオブジェクトをシリアライズおよびデシリアライズして、SharedPreferencesでオブジェクトを保存および取得することは可能ですか?PublisherInterstitialAdオブジェクトのシリアライズとシリアル化解除
Gsonライブラリを使ってみると、StackOverflowErrorが発生しました。私が現在の方法でうまくいかないのか、これが最善の方法で行われるのかを提案してください。
ありがとうございます。
これらは、SharedPreferencesでAdオブジェクトを保存および取得するためのメソッドです。ここで、publisherInterstitialAdは問題のオブジェクトです。
public void saveInterstitialAd(PublisherInterstitialAd publisherInterstitialAd) {
Gson gson = new Gson();
String json = gson.toJson(publisherInterstitialAd);
mEditor.putString("InterstitialAd", json);
mEditor.commit();
}
public PublisherInterstitialAd getInterstitialAd(){
Gson gson = new Gson();
String json = mSharedPrefs.getString("InterstitialAd", "");
if(json.equals(""))
return null;
return gson.fromJson(json, PublisherInterstitialAd.class);
}
と、これはスタックトレースを取得していますされていますjava.lang.Class.isArrayで
UncaughtException java.lang.StackOverflowErrorを (Class.java:1118) をcom.google.gsonで($ Gson $ Types.java:96) com.google.gson.internal。$ Gson $ Types $ WildcardTypeImpl($ Gson $ Types.java:551) at com。 google.gson.internal。$ Gson $ Types.canonicalize($ Gson $ Types.java:109) a $ Gson $ Types $ wildcardTypeImpl($ Gson $ Types.java:544) (com.google.gson.internal)$ Gson $ Types.canonicalize($ Gson $ Types.java: $ Gson $ Types $ WildcatTypeImpl($ Gson $ Types.java:551) com.google.gson.internal。$ Gson $ Types.canonicalize($ Gson $ Types .java:109) com.google.gson.internal。$ Gson $ Types $ WildcardTypeImpl($ Gson $ Types.java:544) (com.google.gson.internal)$ Gson $ Types.canonicalize($ Gson $ Types.java:109) com.google.gson.internal。$ Gson $ Types $ WildcardTypeImpl($ Gson $ Types.java:551) com.google.gson.internal。$ Gson $ Types。 canonicalize($ Gson $ Types.java:109) $ Gson $ Types $ wildcardTypeImpl($ Gson $ Types.java:544) at com.google.gson.internal。$ Gson $ Types.canonicalize($ Gson $ Types.java: $ Gson $ Types $ WildcatTypeImpl($ Gson $ Types.java:551) com.google.gson.internal。$ Gson $ Types.canonicalize($ Gson $ Types .java:109) com.google.gson.internal。$ Gson $ Types $ WildcardTypeImpl($ Gson $ Types.java:544) (com.google.gson.internal)$ Gson $ Types.canonicalize($ Gson $ Types.java:109) com.google.gson.internal。$ Gson $ Types $ WildcardTypeImpl($ Gson $ Types.java:551) com.google.gson.internal。$ Gson $ Types。 canonicalize($ Gson $ Types.java:109)$ Gson $ Types $ WildcatTypeImpl($ Gson $ Types.java:544) com.google.gson.internal。$ Gson $ Types.canonicalize($ Gson $ Types.java) :$ Gson $ Types $ WildcardTypeImpl($ Gson $ Types.java:551) com.google.gson.internal。$ Gson $ Types.canonicalize($ Gson $ ($ Gson $ Types.java:109) com.google.gson.internal。$ Gson $ Types $ WildcardTypeImpl。($ Gson $ Types.java:544) 、com.google.gson.internal。$ Gson $ Types.canonicalize $ Gson $ Types.java:109) com.google.gson.internal。$ Gson $ Types $ WildcardTypeImpl($ Gson $ Types.java:551) (com.google.gson.internal)$ Gson $ Types .canonicalize($ Gson $ Types。Javaの:109) com.google.gson.internalでGson $ $ $ WildcardTypeImplタイプ($ Gson $ Types.java:。。544) com.google.gson.internalで$ Gson $ Types.canonicalize($ Gson。 $ Types.java:109)com.google.gson.internal Gson $ $ $ WildcardTypeImplタイプで ($ Gson $ Types.java:。。551) com.google.gson.internalで$ Gson $ Types.canonicalize。 ($ Gson $ Types.java:109)。。com.google.gson.internalで Gson $ $ $ WildcardTypeImplタイプ($ Gson $ Types.java:544)。com.google.gson.internalで Gson $ $ com.google.gson.internalで Gson $ $ $ WildcardTypeImplタイプ($ Gson $ Types.java:551):Types.canonicalize(109 $ Gson $ Types.java)。。com.google.gson.internalで 。 $ Gson $ Types.canon com.google.gson.internalで Gson $ $ $ WildcardTypeImplタイプ($ Gson $ Types.java:544):icalize(109 $ Gson $ Types.java)。。 com.google.gson.internalで$ Gson。 $ Types.canonicalize($ Gson $ Types.java:109)。 com.google.gson.internalでGson $ $ $ WildcardTypeImplタイプ($ Gson $ Types.java:551)。 com.google.gson.internalで。$ Gson $ Types.canonicalize($ Gson $ Types.java:109)。com.google.gson.internalで Gson $ $ $ WildcardTypeImplタイプ($ Gson $ Types.java:544)。 com.googleで。 。gson.internal $ Gson $ Types.canonicalize($ Gson $ Types.java:109)。 com.google.gson.internal Gson $ $ $ WildcardTypeImplタイプで($ Gson $ Types.java:551)。 コムで.google.gson.intern com.google.gson.internalで Gson $ $ $ WildcardTypeImplタイプ($ Gson $ Types.java:544):アル$ Gson $ Types.canonicalize(109 $ Gson $ Types.java)。。。 com.googleで.gson.internal $ Gson $ Types.canonicalize($ Gson $ Types.java:109)。。。com.google.gson.internal Gson $ $ $ WildcardTypeImplタイプで ($ Gson $ Types.java:551) で。com.google.gson.internal $ Gson $ Types.canonicalize($ Gson $ Types.java:109)。。com.google.gson.internalで Gson $ $ $ WildcardTypeImplタイプ($ Gson $ Types.java:544 )com.google.gson.internal。$ Gson $ Types.canonicalで
あなたが言うように、あなたがこの上で何かをしようとしている場合は、あなたのエラーの完全なスタックトレースを含め、コードを共有してください - これは支援しようとしている人々のためのより多くの参考になります。現状では、あなたの質問はあなたがデータを持っているかを見ることができNO ONEなどの意見を募集します。 – ishmaelMakitla