AndroidアプリでJacksonを使用しています。
ビルドパスに次の2つの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
ライブラリと組み合わせて使用しています。
私も同様の問題を抱えていました。 Eclipseを使用していると仮定して、以下を試してください。
うまくいけば、それはうまくいきます。
これは、現在のデバイスOSバージョンに存在しないメソッドを呼び出すコードがある場合にも発生する可能性があります。
たとえば、アプリのどこかで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);
}
私の場合、このソリューションは機能しません。
jarファイルのコード形式がJDK1.6に適合していることを確認してください。
libコード形式を1.7から1.6に変更することでこの問題を発見しましたが、この問題は解決されます。