使用javah生成jni本地方法头文件

前言

不知道往Markdown编辑器里贴了点啥(贴了一些从CMD窗口 dir /s/b的结果),居然挂掉了…
重新打开chrome, 点击写新文章,博客缓存也载入不进来,一直显示等待博客站点的响应…
害的我换个浏览器重新总结 ?

做了试验,搞清楚了用javah生成jni本地方法头文件的方法.
看了别人做的试验,和自己的情况也有一点小不一样.

实验记录

建立一个android工程, 在MainActivity中写一个本地方法, 先编译通过.

package com.ls.testjni;

import android.app.Activity;
import android.os.Bundle;
// import android.view.Menu;
// import android.view.MenuItem;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    public static native void native_fn_help();
}

去工程的src目录下,建立一个 make_native_h.cmd.

javah -classpath "D:\Android\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-20\android.jar;D:\AndroidWorkspace\TestJni\bin\classes" -jni 

com.ls.testjni.MainActivity

打开命令行, 进入到src目录,运行此cmd


D:\AndroidWorkspace\TestJni\bin\classes>cd D:\AndroidWorkspace\TestJni\src

D:\AndroidWorkspace\TestJni\src>dir
 驱动器 D 中的卷是 dat
 卷的序列号是 66A6-68F9

 D:\AndroidWorkspace\TestJni\src 的目录

2016/06/05  17:18    <DIR>          .
2016/06/05  17:18    <DIR>          ..
2016/06/05  16:16    <DIR>          com
2016/06/05  16:26               176 make_native_h.cmd
               1 个文件            176 字节
               3 个目录 864,780,472,320 可用字节

D:\AndroidWorkspace\TestJni\src>make_native_h.cmd

D:\AndroidWorkspace\TestJni\src>javah -classpath "D:\Android\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-20
\android.jar;D:\AndroidWorkspace\TestJni\bin\classes" -jni com.ls.testjni.MainActivity

D:\AndroidWorkspace\TestJni\src>dir
 驱动器 D 中的卷是 dat
 卷的序列号是 66A6-68F9

 D:\AndroidWorkspace\TestJni\src 的目录

2016/06/05  17:19    <DIR>          .
2016/06/05  17:19    <DIR>          ..
2016/06/05  16:16    <DIR>          com
2016/06/05  17:19             3,414 com_ls_testjni_MainActivity.h
2016/06/05  16:26               176 make_native_h.cmd
               2 个文件          3,590 字节
               3 个目录 864,780,468,224 可用字节

D:\AndroidWorkspace\TestJni\src>

头文件就生成好了

备注1

清单文件中的 android:targetSdkVersion 要写成android-SDK中有的版本, 我选的是API15 为android4.0.3
javah -classpath … 中写的android.rar的路径要和 android:targetSdkVersion匹配


D:\Android\adt-bundle-windows-x86_64-20140702\sdk\platforms>dir
 驱动器 D 中的卷是 dat
 卷的序列号是 66A6-68F9

 D:\Android\adt-bundle-windows-x86_64-20140702\sdk\platforms 的目录

2016/05/10  18:47    <DIR>          .
2016/05/10  18:47    <DIR>          ..
2016/05/10  18:42    <DIR>          android-10
2016/05/10  18:37    <DIR>          android-15
2016/05/10  18:34    <DIR>          android-16
2016/05/10  18:31    <DIR>          android-17
2016/05/10  18:28    <DIR>          android-18
2016/05/10  18:24    <DIR>          android-19
2016/05/10  18:19    <DIR>          android-20
2016/05/10  18:15    <DIR>          android-22
2016/05/10  18:11    <DIR>          android-23
2016/05/10  18:47    <DIR>          android-8
               0 个文件              0 字节
              12 个目录 864,778,371,072 可用字节

D:\Android\adt-bundle-windows-x86_64-20140702\sdk\platforms>

备注2

javah -classpath … 中指定的工程class路径中是编译后生成好的class文件, 包含有jni本地方法定义的class就在这个目录.

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值