2013-09-01 63 views
0

我想在舊版Android平臺上顯示webp圖像。我嘗試這些步驟:使用libwebp和NDK在Android 2.x上顯示WebP圖像

  1. 下載最新的Android SDK和NDK包。
  2. 將NDK路徑添加到系統環境path並在Eclipse首選項中進行設置。
  3. 在Eclipse中創建新的Android項目
  4. 右鍵單擊項目文件夾Android ToolsAdd native support確認默認名稱。
  5. 下載libwebp-0.3.1.tar.gz,解壓到項目/jni
  6. 添加static {}webpToBitmap方法主要Activity,代碼來自WebP for Android
  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.mkLOCAL_SRC_FILESinclude $(BUILD_STATIC_LIBRARY) - >include $(BUILD_SHARED_LIBRARY),得到同樣的錯誤。

或者,是否有任何可以輕鬆添加到我的項目中的預構建文件?

+0

什麼WebP的項目網站是什麼? – Tony

+0

你最終解決了這個問題嗎?我目前遇到同樣的問題,並希望得到任何幫助。 – Michael

+0

我正在使用https://github.com/alexey-pelykh/webp-android-backport這一個。 – Cloudream

回答

0

最終通過獲取包含在0.3.1版本中的jar的更新版本來解決此錯誤。包括在包中的一個壞了,你可以使用舊版本0.3.0來自或使用新版本詹姆斯已經在此鏈接編譯:

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