Android NDK环境搭建
? ? ?在Android上要想開發出高效率的軟件,還是須要用到C/C++語言,要想在Java上開發C/C++語言就須要在IDE上安裝NDK;在Android的官網上SDK開發環境已經包括了ADT插件。最新的Android開發IDE能夠到官網下載:http://developer.android.com/sdk/index.html
因為近期Android官網和google在國內常常進不去,我就把下載的放到網盤,有須要的能夠去下載:http://pan.baidu.com/s/1hq3iBGw
準備的文件
? ? 在新版本號的ADT上安裝NDK環境非常方便。我的ADT版本號是V22.0.5,版本號號在打開ADT載入時會顯示出來
在官網上:http://developer.android.com/tools/sdk/ndk/index.html下載最新的NDK。NDK版本號在r7以上之后就集成了Cygwin。不須要單獨去安裝Cygwin
1、Eclipse配置
SDK配置
NDK配置,路徑就是解壓出來的NDK根文件夾
下面就來測試下NDK是否已經成功安裝
隨便新建一個Androidproject,加入Add Native Support
此時新建的project就多了一個jni文件夾
IDE有可能會報一個錯誤:
[2014-06-23 17:08:36 - Unable to launch cygpath. Is Cygwin on the path?] java.io.IOException: Cannot run program "cygpath": CreateProcess error=2, ?????μ???project右鍵。選擇下面選項
環境變量設置NDKROOT,Value就是你解壓出來的NDK文件夾
在這里配置的:${NDKROOT}/ndk-build.com就是下面腳本文件
這時再去Cleanproject就不會報錯了
下面就來編寫JNI的C++文件。可是沒有代碼提示,是因為沒有導入頭文件的原因
導入頭文件方法,選擇“Project Properties”
點擊“Add"
此時再按"alt + /"就有代碼提示
接下來就是編寫代碼
在NDKTest.cpp文件
#include <string.h> #include <jni.h>jstring Java_com_dzt_ndktest_MainActivity_stringJNI(JNIEnv* env,jobject thiz){return env->NewStringUTF("Hello JNI 我的第一個JNI"); } Android.mk文件是自己主動生成的,能夠不用改動 LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := NDKTest LOCAL_SRC_FILES := NDKTest.cppinclude $(BUILD_SHARED_LIBRARY) Activity類調用代碼 package com.dzt.ndktest;import android.app.Activity; import android.os.Bundle; import android.widget.TextView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView tv = (TextView) findViewById(R.id.tv);tv.setText(stringJNI());}public native String stringJNI();static {System.loadLibrary("NDKTest");} } build project
成功通過
再執行程序,非常不幸。報錯了
假設是c++文件須要加上extern "C",從C語言導出
改動代碼例如以下
#include <string.h> #include <jni.h>extern "C" { jstring Java_com_dzt_ndktest_MainActivity_stringFromJNI(JNIEnv* env,jobject thiz) {return env->NewStringUTF("Hello JNI"); } }成功通過
源碼下載:http://download.csdn.net/detail/deng0zhaotai/7540771
很多其它的樣例能夠到下面文件夾獲取,這是NDK自帶的樣例。
轉載于:https://www.cnblogs.com/mqxnongmin/p/10894763.html
總結
以上是生活随笔為你收集整理的Android NDK环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51nod 2497 数三角形
- 下一篇: 回流,重绘的概念,以及他们的区别?