繁体   English   中英

找不到类的ScalaSig-具有Scala + Proguard的json4s用于Android应用

[英]Can't find ScalaSig for class - json4s with scala + proguard for an android app

我有一个非常简单的案例类(Baz),我想使用json4s-native序列化为JSON。 使用Proguard制作android apk时,我似乎根本无法使它正常工作。

序列化时,发生以下异常:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
            at dalvik.system.NativeStart.main(Native Method)
Caused by: org.json4s.package$MappingException: Can't find ScalaSig for class foo.bar.Baz
    at org.json4s.reflect.ScalaSigReader$.findClass(ScalaSigReader.scala:42)
    at org.json4s.reflect.ScalaSigReader$.org$json4s$reflect$ScalaSigReader$$read$1(ScalaSigReader.scala:36)
    at org.json4s.reflect.ScalaSigReader$.readField(ScalaSigReader.scala:38)

我的proguard配置包含:

-keepclassmembers class * { ** MODULE$; }
-dontoptimize
-dontobfuscate
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

当针对实际代码运行测试用例时,事情按预期进行,但是在proguard步骤之后,总是会出现此问题。

有什么帮助吗?

干杯。

也许这会有所帮助:

json4s“仅支持顶级对象或直接在对象中定义的对象”。 例如,在def中定义的类不起作用。 我假设Proguard更改了代码结构。

(对不起,我无法发表评论)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM