1

私はマルチプラットフォーム ゲーム (デスクトップと Android) に取り組んでおり、現在シリアライゼーションに取り組んでいます。私はlift-jsonを使用しています。デスクトップでは問題なく動作しますが、Android では悪夢です。

例として、私が書くなら

case class A(int:Int)

implicit val formats = Serialization.formats(ShortTypeHints(List(classOf[A])))

println(write(A(1)))

デスクトップでは、次のようになります。

{jsonClass: "A",int:1} 

Android の場合:

{jsonClass : "A"} 

(メンバーがないため、これを逆シリアル化できません)。私が疑う理由は、Androidバージョンが使用するproguard 4.8です。

4

1 に答える 1

1

proguard が行うことの 1 つは、クラスとメンバーの名前を変更することです。Java Reflection を使用するものを使用している場合、proguard によって混乱する可能性があります。

この場合、JSON データの保存に必要なクラスを難読化しないように Proguard に指示する必要があります。

于 2012-11-09T19:56:52.780 に答える