我想在较旧的Android平台上显示webp图像。我尝试了这些步骤:
path
并在Eclipse首选项中设置它。Android Tools
- > Add native support
,确认默认名称。libwebp-0.3.1.tar.gz
,摘录到项目/jni
static {}
和webpToBitmap
方法添加到主Activity
,代码来自WebP for Android /jni/swig/libwebp.jar
(随libwebp源附带)添加到java构建路径和import com.google.webp.libwebp;
。尝试使用webpToBitmap
时出现这些错误:(删除不必要的时间/包名称)
Could not find method com.google.webp.libwebp.WebPDecodeARGB, referenced from method ....MainActivity.webpToBitmap
VFY: unable to resolve static method 4601: Lcom/google/webp/libwebp;.WebPDecodeARGB
E/AndroidRuntime(12614): java.lang.UnsatisfiedLinkError: Couldn't load webp from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/....apk"],nativeLibraryDirectories=[/data/app-lib/..., /vendor/lib, /system/lib]]]: findLibrary returned null
我还尝试将swig/libwebp_java_wrap.c \
(随附libwebp源码)添加到Android.mk
LOCAL_SRC_FILES
和include $(BUILD_STATIC_LIBRARY)
- > include $(BUILD_SHARED_LIBRARY)
,同样的错误。
或者,有没有我可以轻松添加到项目中的预建文件?
答案 0 :(得分:0)
最后通过获取0.3.1版本中包含的jar的更新版本来解决此错误。该软件包中包含的版本已损坏,您可以使用0.3.0版本的旧版本,也可以使用James在此链接中编译的新版本:
https://groups.google.com/a/webmproject.org/forum/#!topic/webp-discuss/4nNFdaE2GXI
总结:
这使用0.3.1源树的略微修改版本。 libwebp.jar文件不适用于该树,我们不得不对Android.mk文件进行一些小的修改。对0.3.1版本中的文件执行以下更改并获取新的libwebp.jar。
添加到Android.mk:
swig/libwebp_java_wrap.c \
-include $(BUILD_STATIC_LIBRARY)
+include $(BUILD_SHARED_LIBRARY)
LOCAL_ARM_MODE := arm
Application.mk应包含:
APP_ABI := armeabi armeabi-v7a
APP_OPTIM := release