日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

在android studio中配置ndk开发环境

發(fā)布時(shí)間:2024/4/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在android studio中配置ndk开发环境 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

環(huán)境:android studio 1.5

? ? ? ? ? android-ndk-r10b

?

1、下載android-ndk-r10b,解壓。

2、android studio創(chuàng)建新項(xiàng)目, 配置ndk環(huán)境

打開(kāi)file->project structure選擇你所下載的ndk環(huán)境路徑

?

3、修改 gradle.properties文件

在gradle.properties文件末尾添加android.useDeprecatedNdk=true

如果未添加這個(gè)build時(shí)就會(huì)報(bào)錯(cuò),如下:

Error: NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin. For details, see?http://tools.android.com/tech-docs/new-build-system/gradle-experimental. Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.

?

4、修改build.gradle文件

在build.gradle中添加ndk相關(guān)配置,如下:

android {defaultConfig {applicationId "com.test.ndktest"versionCode 1versionName "1.0"ndk{moduleName "JniTest"abiFilters "armeabi" , "armeabi-v7a" , "x86"}} }ndk{moduleName "JniTest"abiFilters "armeabi" , "armeabi-v7a" , "x86"}} }

如果報(bào)錯(cuò)gradle dsl method not found ndk(),檢查上面紅色代碼是否放錯(cuò)了位置,一定要放到defaultconfig里面,而不是同一級(jí)。

5、創(chuàng)建.h文件

通過(guò)上面4步,基本上ndk的環(huán)境就完成了,下面就是創(chuàng)建文件了。通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)演示ndk的使用。

首先創(chuàng)建一個(gè)native方法,如下

public class NativeUtils {public static native String getHelloString() ; }

通過(guò)build->make project來(lái)編譯項(xiàng)目,這時(shí)會(huì)在app(或其他模塊名)\build\intermediates\classes\debug下生產(chǎn)class文件。

打開(kāi)view->tool windows->terminal,在終端中運(yùn)行javah命令來(lái)生產(chǎn).h文件。

進(jìn)入到app\src\main目錄下

運(yùn)行javah命令 ?javah -d <jni目錄> -classpath <android.jar目錄>;<class文件目錄> <類(lèi)名>

如下:

javah -d jni -classpath E:\android_sdk\sdk\platforms\android-21\android.jar;..\..\build\intermediates\classes\debug com.test.ndktest.NativeUtils

生產(chǎn)的.h文件在app(或其他模塊名)\src\main\jni目錄下。.h文件內(nèi)容

6、創(chuàng)建.c文件

在jni目錄上右鍵->new->C/C++ Source File,打開(kāi)彈窗如下

將type選擇為.c / .h這個(gè),然后將create associated header取消(因?yàn)槲覀円呀?jīng)創(chuàng)建了.h文件,如果未創(chuàng)建就選中可以一起創(chuàng)建),然后填寫(xiě)name,注意和.h文件名字一樣。

這樣就創(chuàng)建了.c文件,在文件中實(shí)現(xiàn).h文件的方法即可,如下:

#include "com_test_ndktest_NativeUtils.h" jstring JNICALL Java_com_test_ndktest_NativeUtils_getHelloString( JNIEnv *env, jclass jclass1) {return (*env) -> NewStringUTF(env , "hello native!") ; }

7、程序加載so文件

static?{System.loadLibrary("JniTest"); }

so文件的名字就是之前配置的moduleName。

然后使用getHelloString獲取字符串展示。

rebuild project然后運(yùn)行即可

8、

編譯時(shí)如果出現(xiàn)錯(cuò)誤如下:

No rule to make target 'xxxx.c', needed by 'xxxx.o'

這是ndk的一個(gè)bug,在jni目錄下只有一個(gè).c文件是會(huì)出現(xiàn)這個(gè)錯(cuò)誤,解決方法是添加一個(gè)空文件

以第6步的方式一起創(chuàng)建empty.c和empty.h文件,再rebuild運(yùn)行即可。

國(guó)外解決此錯(cuò)誤的原文如下:

Android Studio, gradle and NDK integration – ph0b's

總結(jié)

以上是生活随笔為你收集整理的在android studio中配置ndk开发环境的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。