在ADT中進(jìn)行NDK開(kāi)發(fā)非常簡(jiǎn)單,在Android Studio進(jìn)行NDK開(kāi)發(fā)也同樣的容易。NDK開(kāi)發(fā)主要有兩中情況:一種是使用已經(jīng)編譯好的.so動(dòng)態(tài)庫(kù);一種是使用c/c++源代碼開(kāi)發(fā)。

創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比平陰網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式平陰網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋平陰地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴(lài)。
使用Android Studio2.1.2 + android-ndk-r10e搭建NDK環(huán)境,遇到以下問(wèn)題,特此記錄下來(lái);
1、配置NDK路徑,打開(kāi)local.properties,在末尾添加ndk.dir=E\:\\Android\\AndroidDevTools\\android-ndk-r10e;
2、打開(kāi)工程的build.gradle,dependencies下面的classpath替換classpath 'com.android.tools.build:gradle-experimental:0.2.0',對(duì)應(yīng)設(shè)置gradle wrapper的時(shí)候要對(duì)應(yīng)
gradle2.5-all版本,如果是0.4版本,剛需要使用gradle2.8-all版本;
3、配置app的build.gradle,由于AS自帶生成的gradle文件與NDK的gradle差別很大,這里附上已經(jīng)配置好鏈接地址,
建立項(xiàng)目,并設(shè)置activity.xml布局文件,這一點(diǎn)與普通編程沒(méi)有不同。通過(guò)一個(gè)簡(jiǎn)單的文本展示實(shí)驗(yàn)。
在MainActivity中添加native接口,并加載.so庫(kù)
生成項(xiàng)目的.class文件。首先選中項(xiàng)目后,在菜單欄選擇Build--Make Project。
Make之后,將生成.class文件,生成的.class文件位于app_path/build/intermediates/classes/debug/包名
利用javah生成C頭文件:點(diǎn)擊"View-Tool Windows-Terminal",即在Studio中進(jìn)行終端命令行工具。在控制臺(tái)中通過(guò)命令“cd app\src\main\java”,進(jìn)入到j(luò)ava目錄下。操作指令:javah -d ../jni vrlab.ndkdemoforandroidstudio.MainActivity。此時(shí)在main目錄下生成一個(gè)jni文件夾,其中在jni文件夾中有生成的.h頭文件。
編輯C文件,在jni文件夾下新建文件命名為main.c。并在該文件中導(dǎo)入需要的頭文件,實(shí)現(xiàn)上一步生成的頭文件中的方法。
配置NDK路徑,在local.properties中指明sdk和ndk路徑:
設(shè)置ndk參數(shù),名字、發(fā)布平臺(tái)等。在應(yīng)用目錄下的build.gradle中defaultConfig中設(shè)置
生成.so文件,此時(shí)再次選擇Build--Build Project就可以生成so文件了。出現(xiàn)不支持NDK的錯(cuò)誤提示,不過(guò)跟著錯(cuò)誤提示修改:在項(xiàng)目空間下的gradle.properties中添加android.useDeprecatedNdk=true。
針對(duì)三種不同的CPU生成了三種不同的.so文件。生成的.so文件位于app_path/build/intermediates/ndk/debug/lib.
安裝運(yùn)行~~去吧,皮卡丘
現(xiàn)在Google提倡使用CMake/cpp方式進(jìn)行ndk開(kāi)發(fā),在Android Studio進(jìn)化到4.0版本時(shí),使用ndk-bundle/c方式進(jìn)行開(kāi)發(fā)過(guò)程中,遇到諸多問(wèn)題,現(xiàn)記錄如下,以資備用。
前兩行與最后一行是固定內(nèi)容,需要配置的是從第三行開(kāi)始的內(nèi)容。
其中,LOG_TAG 后的 log_c 可以自定義為任意合法字符串。
表示將jniLibs目錄指向之前生成并存放.so文件的目錄(此目錄也可以創(chuàng)建在工程下,并將路徑直接指向工程下創(chuàng)建的目錄中。如在工程下創(chuàng)建一個(gè) libs 目錄,之后在 [] 中輸入 libs 即可)。
此時(shí)就會(huì)在當(dāng)前classes下生成一個(gè)名稱(chēng)為 com_demo_www_JNI 的.h文件,將該文件移動(dòng)至項(xiàng)目的jni目錄下即可正常使用。
在點(diǎn)擊 Files-Project Structure-SDK Location 并配置 Android NDK Location 時(shí),有時(shí)會(huì)出現(xiàn)一個(gè)如下圖所示的報(bào)錯(cuò):
覽帖諸位,如有更好的建議,請(qǐng)不吝賜教。
當(dāng)前文章:androidstudiondk開(kāi)發(fā),android studio jdk
網(wǎng)頁(yè)URL:http://chinadenli.net/article37/dsioisj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)公司、面包屑導(dǎo)航、自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)