【 Android 】Eclipse 轉 Studio 使用 jar、so及第三方的開源庫
在專案上遇到一個轉換後UnsatisfiedLinkError的問題
就是在eclipse上開發完的專案有包含一個外部的so檔,原本eclipse上開發是沒問題的,但轉換成studio後卻發生找不到so檔的問題(如下):
java.lang.UnsatisfiedLinkError: Couldn't load ov780wifi from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.hw.wificamhd-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.hw.wificamhd-2, /vendor/lib, /system/lib]]]: findLibrary returned null
會出現這個問題最主要的就是在eclipse在export後的"gradle"目前還不支持.so檔打包入apk,所以就會出現程式在run的時候出錯。
目前解決方式如下:
1. 先在裝置任何一處建立一個空的資料夾,名稱叫"lib" (不是"libs")
2. 再把原在在libs下的armeabi資料夾複製到剛建立的lib資料夾內(連同armeabi資料夾裡的.so檔也會一併複製)
3. 再將"lib"這個資料夾壓縮成 .zip檔,並將檔名和副檔名改為"armeabi.jar"
4. 將"armeabi.jar"放入原來的libs目錄下
以上操作即可解決上述的問題。
留言
張貼留言