我正在尝试在Android项目中使用Json4s。我的项目编译等,但我看到以下错误:
我不确定dalvikvm是否有特定的问题,或者只是proGuard问题。如果相关,Json4s. Meta的源代码如下所示:
package org.json4s
import java.lang.reflect.{Constructor => JConstructor, Field, Type, ParameterizedType, GenericArrayType}
import java.util.Date
import java.sql.Timestamp
import com.thoughtworks.paranamer.{ParameterNamesNotFoundException, BytecodeReadingParanamer, CachingParanamer}
import scalashim._
case class TypeInfo(clazz: Class[_], parameterizedType: Option[ParameterizedType])
trait ParameterNameReader {
def lookupParameterNames(constructor: JConstructor[_]): Traversable[String]
}
private[json4s] object Meta {
import com.thoughtworks.paranamer._
接下来是一堆案例类等。
任何关于如何解决此问题的想法?
看起来代码中缺少类com. thoughtworks.paranamer.CachingParanamer
。这可能是因为它一开始就从库中缺少,或者因为ProGuard已将其删除或重命名(错误?)。
在前一种情况下,您应该确保所有必要的库都存在于您的libs目录中。如果输入中似乎缺少任何类,ProGuard应该抱怨。
在后一种情况下,您应该确保您在AndroidSDK中使用的是最新版本的ProGuard(此时为4.8或4.9beta)。如果这没有帮助,您可以尝试显式保留该类:
-keep class com.thoughtworks.paranamer.CachingParanamer
这不太可能是一个合适的解决方案,因为ProGuard真的应该为你解决这个问题。