做jni的HelloWorld的例子是,报错:无法打开包括文件:"jni.h"

做jni的HelloWorld的例子是,报错:无法打开包括文件:"jni.h",第1张

恢复normal模板就可以了:

1、关闭所有打开的word文档;

2、复制这条命令:

%appdata%\microsoft\templates

3、开始

运行

→枯闷

粘贴上面复制的命令

确定升脊

4、在打开的目录下,找到并删吵败渗除normal.dot,然后重新运行word即可。

你这样直升行接转换游歼是不行的JNIEXPORT jbyteArray JNICALL Java_Test_getByteArray(JNIEnv *env, jobject obj){jbyteArray firstMacArray = env->神笑冲NewByteArray( 6 )..elided...jbyte *bytes = env->GetByteArrayElements( firstMacArray, 0)for ( int i = 0i <sizeof( pAdapterInfo->Address )i++ ){bytes[ i ] = pAdapterInfo->Address[ i ]}env->SetByteArrayRegion(firstMacArray, 0, 6, bytes )return firstMacArray}另外,给你一个有关各种转换的博客 http://blog.csdn.net/vrix/article/details/5953710希望对你有用

关于如何在Android使用JNI调用C/C++代码库,网上已经有很多优秀的文章了,这里说一个大概过程吧:

首先需要懂C,其次要明白JNI的开发流程,然后还要知道NDK如何使用

1、在java代码中声明了一个native本地方法

Public native String helloFromc()

2、在项目目录中创建JNI文件夹

3、在JNI文件夹里面创建C文件,按照规范写代码

Jstring

Java_com_cheng_jnitest_MainActivity_helloFromc(JNIEnv* env,jobject obj)

4、用ndk-build指令编译

编译前需要配置Android.mk文件

//指定庆让激编译的文件夹,指定当前的目录

LOCAL_PATH := $(call my-dir)

//编译器在编译的时誉袜候会产生很多临时变量,中间变量最好在编译前清空所有的临时变量

include $(CLEAR_VARS)

//编译完成后的模块名

LOCAL_MOUDLE := hello

//编译的源文件

LOCAL_SRC_FILES:=hello.c

//编译一个动态库

//动态库.so 只包含运行的函数,不包含依赖,所以体积小,运行的时候回去系统寻找依赖

//静滑塌态库.a 包含所有的函数和运行的依赖,所以体积大,包含所有的api

include $(BUILD_SHARED_LIBRARY)

5、生成了一个so动态库,放到了libs里面

6、项目中引入依赖库

Static{

System.loadLibrary("hello")

}

-


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12118326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存