Android Studio開發jni例項詳解 (呼叫C程式碼例項)
第一步:需要在app的build.gradle裡面的Android{}裡面新增如下程式碼,指定jni放置目錄: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)
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的核心並不在框
Android中JNI使用詳解(3)---Android Studio中SO檔案生成
Android中JNI使用詳解(2)---Android Studio中SO檔案生成 上一篇寫到過在Android Studio中配置NDK環境地址:Android Studio中NDK環境配置 這篇文章講解在Android Studio中
Android中JNI使用詳解(2)---Android Studio中NDK環境配置
Android Studio中的NDK環境配置 1、下載NKD 在Android Studio中選擇File----Settings----Appearance&Behavior---System Settings----Andr
Android studio 下 JNI 開發例項
在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 studio 下 JNI 開發實例
ndk create void 上層 執行效率 約束 添加 src 傳輸協議 在AS中進行 NDK 開發之前,我們先來簡單的介紹幾個大家都容易搞懵的概念: 到底什麽是JNI,什麽是NDK? 何為“交叉編譯”? 先看什麽是 JNI?JNI 的全稱就是