现在的位置: 首页 > 综合 > 正文

Android-NDK______2.helloJni

2017年10月10日 ⁄ 综合 ⁄ 共 1604字 ⁄ 字号 评论关闭
public class MainActivity extends Activity {

	static {
		System.loadLibrary("mylib");
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		setTitle(getMyData());
	}

	public native String getMyData();

}

创建jni文件夹,天假Android.mk文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE	:= mylib
LOCAL_SRC_FILES	:= com_example_firstndk_MainActivity.c

include $(BUILD_SHARED_LIBRARY)



这里面需要根据 javah命令 生成相应的 xxx.h 头文件

1.在Eclipse里面,使用externl tools来生成
  a. run->externl tools->externl tools Configurations->new Program

Location:是命令的位置

Working Diretory:是在哪个目录下执行命令

Arguments:就是参数了

      b.点击Refresh,勾选Refresh resources upon completion

         选择Specific resources ,点击Specify Resources Button

          选择工程下的jni

然后apply--->run ,就能生成相应的xxx.h头文件了

 

实现文件:

#include "com_example_firstndk_MainActivity.h"

JNIEXPORT jstring JNICALL Java_com_example_firstndk_MainActivity_getMyData(
		JNIEnv * pEnv, jobject pThis)
{

	return (*pEnv)->NewStringUTF(pEnv,"My native project talks C++");
}

---------------插入一个例子,如果打开eclipse_workspace的设置

这就是打开eclipse_workspace

--------------------------------------------------------------------------------------------

在Eclipse里面编译C/C++代码(先安装CDT)

1.将android工程 convert to C/C++ project

2.工程-->propotices->C/C++ Build

不要勾选Use default build command

Build command:/Users/mac/work/android-ndk-r8e/ndk-build 

为了让修改代码后,自动编译,

点击Behaviour选项卡:

勾选 Build on resources save(Auto build) all

Apply-->OK

3.由于程序里面用到了一些头文件,所以需要引入

C/C++ General->Path and Symbols

Includes (就是引入头文件) Add-->加上使用了的就可以了 

Sources Location (就是代码位置)暂时先不管 Apply->OK

4.由于Eclipse的语法检验C/C++不怎么好,正确的代码也会报错

C/C++ General->Code Analysis

勾选 Use project settings

使 下面 Syntax and Semantic Errors 不要勾选上。

然后就可以开始Run了



抱歉!评论已关闭.