Jni 简单实战 获取c++返回值

这节主要是能从c++中获取字符串

1、新建一个Android项目JNIStudy

2、在MainActivity.java文件进行修改

public class MainActivity extends Activity {    
     //声明一个native函数    
     public static native String getStringFromC();        
     private TextView textView;    
     @Override    
     protected void onCreate(Bundle savedInstanceState) {        
          super.onCreate(savedInstanceState);        
          setContentView(R.layout.activity_main);        
          textView=(TextView) findViewById(R.id.textview);        
          textView.setText(getStringFromC());    
     }
}

3、让项目 支持c++编译环境

项目右击->new->


这个和使用:项目右击->Android Tools->Add Native Support...

区别:d

第一种不会生成jni文件夹(我们可以手动添),但是会发现Settings如下图有明显区别

4、生成头文件

如果没有以上按钮 请翻阅 前面的

java jni eclipse 环境配置 生成.h头文件

刷新项目 就会在jni文件夹下看到一个.h文件

5、添加支持jni头文件

右击项目->Properties->C/C++ General->Paths and Symbols->GNU C++->Includes->Add->选择目录(/android-ndk-r9d/platforms/android-19/arch-arm/usr/include)->Apply

此时.h文件就没有报错

6、在jni文件夹实现.h文件函数

#include "com_hym_jni_MainActivity.h"
JNIEXPORT jstring JNICALL Java_com_hym_jni_MainActivity_getStringFromC
  (JNIEnv *env, jclass){
	return env->NewStringUTF("hello jni!");
}


7、在jni文件夹下编写Android.mk文件

LOCAL_PATH :=$(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE:=jniStudy

#LOCAL_SRC_FILES:=HelloJNI.cpp

FILE_LIST := $(wildcard $(LOCAL_PATH)/*.cpp) 

LOCAL_SRC_FILES:= $(FILE_LIST:$(LOCAL_PATH)/%=%)
#添加log库
LOCAL_LDLIBS    += -llog 

include $(BUILD_SHARED_LIBRARY)

8、在MainActivity.java文件下

添加以下代码

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


9、ndk-build命令

添加ndk目录

设置Build command

10、运行项目

在lib文件夹下就会生成libjniStudy.so

手机上也有hello jni!字符串




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值