1. 程式人生 > >Android Studio開發jni例項詳解 (呼叫C程式碼例項)

Android Studio開發jni例項詳解 (呼叫C程式碼例項)

FATAL EXCEPTION: main
Process: com.example.jni.jnitest, PID: 30152
java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader[DexPathList[[dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-support-annotations-23.4.0_d560f708638dfceb3917510f1cc1dc667f754e94-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-slice_7-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-slice_6-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-slice_5-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-slice_4-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-slice_3-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-slice_2-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-slice_1-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-slice_0-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-internal_impl-23.4.0_00c09662b55d223b900e647a021f5f9dd9b4b6e9-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-com.android.support-support-vector-drawable-23.4.0_8b8204428df1954e75ed14d23129e230d51e4401-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-com.android.support-support-v4-23.4.0_ab900e8ce412421b38e4e809122c4e820ea3b15b-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-com.android.support-appcompat-v7-23.4.0_60d063a4fe66aa6d98c8e4fbd0183a230d80c604-classes.dex", dex file "/data/data/com.example.jni.jnitest/files/instant-run/dex/slice-com.android.support-animated-vector-drawable-23.4.0_7565542ff4cab32ab703cc056ccf47fe61af9054-classes.dex"],nativeLibraryDirectories=[/vendor/lib64, /system/lib64, /vendor/lib64, /system/lib64]]] couldn't find "libJniTest.so"
    at java.lang.Runtime.loadLibrary(Runtime.java:378)
    at java.lang.System.loadLibrary(System.java:998)
    at com.example.jni.jnitest.MainActivity.<clinit>(MainActivity.java:11)
    at java.lang.reflect.Constructor.newInstance(Native Method)
    at java.lang.Class.newInstance(Class.java:1572)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2303)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2466)
    at android.app.ActivityThread.access$1200(ActivityThread.java:152)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1341)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5538)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:958)
第一步:需要在app的build.gradle裡面的Android{}裡面新增如下程式碼,指定jni放置目錄:
    sourceSets{
        main{
            jniLibs.srcDirs = ['libs']
        }
    }

第二步:然後將so檔案放在app資料夾下的libs裡面


相關推薦

Android Studio開發jni例項 (呼叫C程式碼例項)

FATAL EXCEPTION: main Process: com.example.jni.jnitest, PID: 30152 java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$Dele

Android開發儲存方式之SQLite使用例項

使用SQL語句完成SQLite資料庫的建立、插入和查詢:import android.app.Activity; import android.database.Cursor; import andr

Android Studio使用教程圖文

識別 由於 group 之前 而是 ces doc java代碼 風格 Android Studio是一款非常專業的Android集成開發環境工具,那麽,Android Studio怎麽用呢?針對不知道Android Studio怎麽使用的朋友們,本文就為大家圖文詳細介紹A

android studio中使用svn

安裝SVN svn下載:https://tortoisesvn.net/downloads.html svn安裝: 需注意,需安裝 command line功能。 svn注意點:3.1. 需要重啟電腦,右鍵才會出現svn的各種選單。 3.2. 若是直接開啟Totos

Android Studio——版本自動更新

       在開發過程中,有些時候總是會報一些Android Studio vesion  版本低,要求升級之類的錯誤,然而大家又會嫌麻煩去網上下載,今天給大家介紹的一個小技巧是,在Android Studio裡面直接就能升級的小方法,我們來看看怎樣升級;      

Android 註解開發 ButterKnife使用及教程

**俗話說:“不會偷懶的程式設計師不是好的程式設計師!”。作為一名Android開發,是不是經常厭煩了大量的findViewById以及setOnClickListener程式碼,而ButterKnife是一個專注於Android系統的View注入框架,讓你從此

Android studio 3.2 升級及Gradle配置

一、下載並安裝Android studio 3.2 1.1 下載: Android studio 3.2 windows x64 下載直達 Windows(64-bit) android-studio-ide-181.5014246-windows.exe

Android Studio開發JNI工程

轉:http://www.2cto.com/kf/201412/361768.html 使用Android Sutdio建立一個新的工程後,接下來記錄建立NDK工程的基本步驟。 本文將達到: 1. 建立NDK工程 2. 在JNI中輸出Log語句 3. 指定編譯的so庫的abi版本 4. 解決在建

Android Studio開發JNI示例

JNI和NDK介紹 JNI(Java Native Interface),是方便Java呼叫C、C++等Native程式碼所封裝的一層介面,相當於一座橋樑。通過JNI可以操作一些Java無法完成的與系統相關的特性,尤其在影象和視訊處理中大量用到。 NDK(Nat

Android 應用開發】BluetoothDevice

一. BluetoothDevice簡介1. 繼承關係public static Class BluetoothDevice extends Object implement Parcelable該類實

Android Studio中Gradle使用

一)基本配置 build配置 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' } }Android指令碼apply

使用Android Studio開發 JNI

新版本的Android Studio支援使用CMake來編譯JNI,使得開發帶有C或者C++語言的程式碼變得簡單的許多,下面一個簡單的示例專案 環境 Android Studio 2.2 build-tools 版本 2.2.0-alpha6 NDK支援

Android Studio開發基礎之使用XML和Java程式碼混合控制UI介面

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:/

MVC入門——經典MVC登入例項--附完整程式碼

參考《JavaWeb開發實戰經典》 MVC是核心,是最重要的基礎! “有不少人一直問,是不是應該把框架(Struts、Spring、Hibernate等成為開發框架)開發作為學習重點,其實:框架只是一種很簡單的應用,而整個JavaEE的核心並不在框

AndroidJNI使用(3)---Android Studio中SO檔案生成

Android中JNI使用詳解(2)---Android Studio中SO檔案生成 上一篇寫到過在Android Studio中配置NDK環境地址:Android Studio中NDK環境配置 這篇文章講解在Android Studio中

AndroidJNI使用(2)---Android Studio中NDK環境配置

Android Studio中的NDK環境配置 1、下載NKD 在Android Studio中選擇File----Settings----Appearance&Behavior---System Settings----Andr

Android studioJNI 開發例項

 在AS中進行 NDK 開發之前,我們先來簡單的介紹幾個大家都容易搞懵的概念:  到底什麼是JNI,什麼是NDK?  何為“交叉編譯”?     先看什麼是 JNI?JNI 的全稱就是 Java Native Interface,即java本地開發介面。可能大家和我一樣,一聽到介面什麼的就犯懵:“

Android jni開發-3(jni函式

JNI函式     本章為JNI函式提供參考資訊。其中列出了全部JNI函式,同時也給出了JNI函式表的準確佈局。注意:“必須”一詞用於約束JNI程式設計人員。例如,當說明某個JNI函式必須接收非空物件時,就應確保不要向該JNI函式傳遞NUL

Android開發例項之IMF(輸入法)(Android SDK Sample—SoftKeyboard)

      本博前面的文章介紹了開發環境的搭建和模擬器的常用操作。本次,將以Android Sample中經典的SoftKeyboard專案為例,詳細解析Android上一個小型專案的開發過程和注意事項。   從SDK 1.5版本以後,Android就開放它的IMF(

Android studioJNI 開發實例

ndk create void 上層 執行效率 約束 添加 src 傳輸協議 在AS中進行 NDK 開發之前,我們先來簡單的介紹幾個大家都容易搞懵的概念: 到底什麽是JNI,什麽是NDK? 何為“交叉編譯”? 先看什麽是 JNI?JNI 的全稱就是