0

我想在旧的 Android 平台上显示 webp 图像。我尝试以下步骤:

  1. 下载最新的 Android SDK 和 NDK 包。
  2. 将 NDK 路径添加到系统环境path并在 Eclipse 首选项中进行设置。
  3. 在 Eclipse 中创建新的 Android 项目
  4. 右键单击项目文件夹,Android Tools-> Add native support,确认默认名称。
  5. 下载libwebp-0.3.1.tar.gz,解压到项目/jni
  6. 在 main 中添加static {}webpToBitmap方法Activity,代码来自Android 的 WebP
  7. /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_FILESinclude $(BUILD_STATIC_LIBRARY)-> include $(BUILD_SHARED_LIBRARY),得到同样的错误。

或者,是否有任何预建文件可以轻松添加到我的项目中?

4

1 回答 1

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    
于 2013-10-14T03:03:11.603 回答