我在我的Android应用程序中使用Jackson。
我在构建路径中添加了这两个jar:
jackson-core-asl-1.0.0.jar
jackson-mapper-asl-1.0.0.jar
但是,我一直在Logcat中看到这个:
11-24 18:25:15.093: I/dalvikvm(28842): Could not find method org.codehaus.jackson.map.ObjectMapper.getTypeFactory, referenced from method org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.getJavaType
11-24 18:25:15.093: W/dalvikvm(28842): VFY: unable to resolve virtual method 17967: Lorg/codehaus/jackson/map/ObjectMapper;.getTypeFactory ()Lorg/codehaus/jackson/map/type/TypeFactory;
这只是在那种方法上。我在类似的错误上搜索了StackOverflow,但所有错误都是:
我的Android版本是4.0.3。我将此与Spring Android
库结合使用。
答案 0 :(得分:13)
我有类似的问题;假设您正在使用Eclipse,请尝试以下操作:
希望这有效。
答案 1 :(得分:11)
如果您拥有当前设备操作系统版本中不存在的代码调用方法,也会发生这种情况。
例如,如果您应用中的某个地方调用Settings.Global.getFloat(String)
- 已在api 17中添加 - 并且当前设备正在运行api 15,您将在日志中看到此警告。
如果您实际尝试调用此方法,则会发生崩溃。如果不调用此方法,则没有问题。因此,请确保在调用之前始终检查当前版本。
private float getAnimationSetting(ContentResolver contentResolver,
String setting) throws Settings.SettingNotFoundException {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
return getAnimationSettingJB(contentResolver, setting);
} else {
return getAnimationSettingLegacy(contentResolver, setting);
}
}
private float getAnimationSettingLegacy(ContentResolver contentResolver,
String setting) throws Settings.SettingNotFoundException {
return Settings.System.getFloat(contentResolver, setting);
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
private float getAnimationSettingJB(ContentResolver contentResolver,
String setting) throws Settings.SettingNotFoundException {
return Settings.Global.getFloat(contentResolver, setting);
}
答案 2 :(得分:1)
在我的情况下,此解决方案无法正常工作。
检查jar文件的代码格式是否适合JDK 1.6,
我通过将我的lib代码格式从1.7更改为1.6来找到此问题,这个问题将得到解决。