1. 程式人生 > >Android JNI以及打包so檔案到apk中

Android JNI以及打包so檔案到apk中

W/dalvikvm( 5177): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/miui/userbook/util/Patcher;
W/dalvikvm( 5177): threadid=12: thread exiting with uncaught exception (group=0x41566930)
E/AndroidRuntime( 5177): FATAL EXCEPTION: AsyncTask #3
E/AndroidRuntime( 5177): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime( 5177):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
E/AndroidRuntime( 5177):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
E/AndroidRuntime( 5177):     at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
E/AndroidRuntime( 5177):     at java.util.concurrent.FutureTask.run(FutureTask.java:239)
E/AndroidRuntime( 5177):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
E/AndroidRuntime( 5177):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
E/AndroidRuntime( 5177):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
E/AndroidRuntime( 5177):     at java.lang.Thread.run(Thread.java:856)
E/AndroidRuntime( 5177): Caused by: java.lang.ExceptionInInitializerError
E/AndroidRuntime( 5177):     at com.xxx.util.UserbookUpdateManager.update(UserbookUpdateManager.java:394)
E/AndroidRuntime( 5177):     at com.xxx.util.UserbookUpdateManager.doUpgrade(UserbookUpdateManager.java:283)
E/AndroidRuntime( 5177):     at com.xxx.util.UserbookUpdate.update(UserbookUpdate.java:104)
E/AndroidRuntime( 5177):     at com.xxx.util.UserbookUpdate.access$000(UserbookUpdate.java:15)
E/AndroidRuntime( 5177):     at com.xxx.util.UserbookUpdate$1.doInBackground(UserbookUpdate.java:57)
E/AndroidRuntime( 5177):     at com.xxx.util.UserbookUpdate$1.doInBackground(UserbookUpdate.java:54)
E/AndroidRuntime( 5177):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
E/AndroidRuntime( 5177):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
E/AndroidRuntime( 5177):     ... 4 more
E/AndroidRuntime( 5177): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load xxxbook_jni from loader dalvik.system.PathClassLoader[dexPath=/system/app/xxxbook.apk,libraryPath=/data/app-lib/xxxbook]: findLibrary returned null
E/AndroidRuntime( 5177):     at java.lang.Runtime.loadLibrary(Runtime.java:365)
E/AndroidRuntime( 5177):     at java.lang.System.loadLibrary(System.java:535)
E/AndroidRuntime( 5177):     at com.xxx.util.Patcher.<clinit>(Patcher.java:32)
E/AndroidRuntime( 5177):     ... 12 more
W/ActivityManager( 1171):   Force finishing activity com.xxx/.ListActivity
V/PhoneStatusBar( 2411): setLightsOn(true)
I/RenderThread( 4536): RenderThread resumed

相關推薦

Android JNI以及打包so檔案apk

W/dalvikvm( 5177): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/miui/userbook/util/Patcher; W/dalvikvm( 5177): threadid=12: th

關於Android Studio .so檔案打包不到APK的原因

         鬱悶和困惑我了好幾天的問題終於解決了,感覺像心裡一塊石頭落地了,沒解決之前,都想著是不是AS工具出現問題了,系統出現問題了,還是電腦有問題?各種原因都找了,功夫不負有心人,最後沒辦法,只能一行一行程式碼去看,最終找到了原因。 1,需要在build中新增如下

Android studio執行JNI程式以及生成.so檔案(Windows下)

呼叫JNI中的方法展示出來的結果 生成的各個平臺的so庫的結果 下面開始進入主題 1、首先是要配置NDK(若是已經配置過NDK請略過此步驟) 建立NDK_HOME 再將配置好的NDK_HOME新增到PATH環境變數中 配置好之後可以測試是否配置正確 ,開啟cmd在裡面輸入ndk

Android Studio 匯入Jar,刪除jar,以及匯入so檔案心得

最近在研究AS匯入本地三方Jar的方法,在網上也看到了很多,但是都不夠全面,接下來就做個總結吧!(宣告,我的gradle版本是2.2.1,gradleBuildToos 版本是1.3.0,AS版本是1.3.2的,如有版本上的差異,請留言諮詢)。 首先是匯入Jar,這個很簡單

Android 替換應用內so檔案避免每次都要重新打包的麻煩

因工作需要,開發除錯每次都要先編譯so,再打包apk,然後再裝機除錯,很麻煩,就想有沒有辦法直接用新打包的so直接替換apk裡的,這樣省去了不少麻煩。終算是有兩種辦法。 第一種辦法: 0.root手機:一般用各種手機助手都可以,一種不行可以換另一種,不同的手機可能需要不同

Android 內建含有so檔案APK的另一種方式

受內建GMS應用的Android.mk檔案啟發($(ANDROID_ROOT)/vendor/google/apps/Android.mk),我們在內建還有so檔案的apk時,有個更便捷的方式。 下面的指令碼是內建搜狗輸入法的一個例程。該apk含有三個so檔案,分別是:li

Android studio 使用Cmake完成C/C++ 的使用以及生成so檔案

Android studio 2.2版本以後對C/C++的支援可以說很方便了,當然官方推薦使用Cmake完成對C/C++的支援 2.2版本以上的同學新建一個專案就知道了,步驟如下: File -> New -> New Project,如下圖: 然後勾選

Android Studio NDK及so檔案開發 以及常見錯誤

LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := demo LOCAL_SRC_FILES := demo.cpp include $(BUILD_SHARED_LIBRARY) andr

Android Studio快速匯入SO檔案與jAR包

首先將你需要匯入的jar包和so檔案 直接拷貝至Projuect目錄下的lib包下 在Module層級下的build.gradle檔案裡寫入此段程式碼 sourceSets{ main

android 7.0 因為.so檔案而崩潰事件解決

菜鳥進場,方圓十里,寸草不生 現在基本都在用第三方的分享,但是不知道為什麼,腦殘的準備自己整合微博的第三方分享,本來一路躺坑都過來了,不過遇到一個奇葩的問題,軟體在android N上會崩潰,其實也就是在android7.0上會崩潰,其他手機都好的,網上查的話

Android動態選擇性載入so檔案

先說問題,專案中只提供了 armeabi 目錄下的基礎so檔案,對於大多數的機型都是支援的,但是在最近使用的一個第三方庫中,只提供了 v6、v7 跟 x86 機型的so檔案,將v7中so放在 armeabi 下面,在 x86 的機子上會 crash,如果再在li

安卓防破解自用筆記(1)android studio 開發生成so檔案

1. 我這使用的是mac book pro,安裝的Android studio版本在此時此刻還算可以用, 可能不是最新的,但我不要求一定要最新的。為了防止今後看到這個文章跟自己的出現的問題無法對上,我先登記一下我使用的系統版本及as版本號。 2. 在官方或其它渠道下載一

Android引入 和打包AAR 檔案

引入 aar 方法一、通過 libs 引入到 app 中 把 aar 檔案放在 libs 目錄下 在 app 的 build.gradle 中新增如下內容 repositories {     flatDir {         dirs 'libs'      }

Windows下編譯使用Android NDK,呼叫SO檔案

下載後把壓縮包解壓出來,例如:D:\ndk,目錄下的ndk-build.cmd就是用來編譯的批處理命令。 這裡以D:\ndk\samples\hello-jni為例,開啟D:\ndk\samples\hello-jni\jni\hello-jni.c檢視程式碼: /* * Copyri

Android動態載入——載入已安裝APK的類

public class TestAActivity extends Activity { /** TestB包名 */ private static final String PACKAGE_TEST_B = "com.nmbb.b"; @Override publ

android studio裡面新增.so檔案

第一遇到需要新增.so檔案到工程裡。在網上收了很多資料,都是差不多的方法,試了又試,總是不成功,最後還是請教的朋友。現在把方法寫出來,分享給大家。希望遇到同樣問題的人能少走彎路。 1.首先新建一個資料夾,以armeabi命名,把要引用的.so檔案放到這個資料夾下面。 2.把

Android Studio 簡單生成so檔案並呼叫

第1步:新建一個Android Studio 工程 JniHelloWorld。新建一個MyJni.java檔案。 MyJni.java public class MyJni { static { System.loadLi

android 5.0以上so檔案關於平臺支援問題的淺析

背景 近期,因為一些原因,需要整理一個最簡單的外掛框架使用的demo,此過程中出現了一個非常詭異的問題, 在實際專案中一直執行正常的一些外掛,在demo裡面卻執行崩潰,得到的異常資訊如下:06-01 15:44:59.462 26609 26609 E Instrument

Lease(租約)以及在GFS檔案系統的作用

租約的作用:分散式環境中維持快取的一致性的一種協議 傳統的解決方案: 輪詢:即每次讀取資料時都先詢問伺服器資料是否是最新的,如果不是就從伺服器傳輸新資料,這種方法需要每次讀取資料時都與伺服器通訊。 問題:每讀取資料都需要與伺服器確認,伺服器負載大 回撥或稱為無效化

Android 反除錯、so檔案注入

關鍵程式碼: Thread t=new Thread(new Runnable() { @Override public void run() {