美文网首页
Eclipes配置JNI环境相关

Eclipes配置JNI环境相关

作者: 代码DJ | 来源:发表于2017-08-02 14:49 被阅读0次

    JNI在Eclipes中常用的配置设置

    在有使用JNI来开发的项目,需要让项目支持底层代码开发,具体操作如图
    右键点击工程 Android tools -> Add Native Surpport 添加 native support


    支持底层代码

    然后接着按Finish结束操作

    接着将NDK中的头文件导入到项目中,支持项目中C/C++代码的引用





    到了这里,就要指定一下NDK目录中的头文件目录的位置了
    点击File system选中ndk 头文件所在目录 例如:${ANDROID_NDK_HOME}\platforms\android-21\arch-arm\usr\include
    点击确定,配置完成

    然后你输入就有提示了,但是要注意C++和C的文件编码风格有点不同,主要是因为C和C++内部的调用机制不同吧,细节的可能要去研究一下。

    C++代码风格

    #include "hello-jni.h"
    
    /**
     * Class:     com_example_jnidemo_FirstJNIDemoActivity
     * Method:    stringFromJNI
     * Signature: ()Ljava/lang/CharSequence;
     */
    JNIEXPORT jobject JNICALL Java_com_example_jnidemo_FirstJNIDemoActivity_stringFromJNI
      (JNIEnv *env, jobject obj){
        return env->NewStringUTF("Hello JNI");  //这里这句代码和C的代码调用不同
    }
    

    C代码风格

    #include "hello-jni.h"
    
    /**
     * Class:     com_example_jnidemo_FirstJNIDemoActivity
     * Method:    stringFromJNI
     * Signature: ()Ljava/lang/CharSequence;
     */
    JNIEXPORT jobject JNICALL Java_com_example_jnidemo_FirstJNIDemoActivity_stringFromJNI
      (JNIEnv *env, jobject obj){
        return (*env)->NewStringUTF(env, "Hello JNI");  //这里的代码和C++的调用方式就不同了
    }
    

    设置javah 生成头文件的命令工具

    到这里基本的NDK的配置完成了。但是在jni开发中还有一些便捷的操作可以提供使用
    在生成头文件的时候要一直去敲javah。非常的麻烦,这里eclipes可以添加这样的命令配置

    Run -> External Tools -> External Tools Configuration
    左边栏中右击Program 增加 命令

    Name : javah

    Location :

    ${system_path:javah}
    

    Working Directory :

    ${project_loc}/jni
    

    Arguments :

    -classpath "${project_classpath};${env_var:ANDROID_SDK_HOME}/platforms/android-23/android.jar" ${java_type_name}
    

    在Common标签页中,Display in favorites menu中,勾选External Tools 让你自定义编辑的javah命令能够显示在External Tools 的列表中。

    在Refresh标签页中,点击单选 The project containing the selected resource。
    这样调整完后,就可以了

    相关文章

      网友评论

          本文标题:Eclipes配置JNI环境相关

          本文链接:https://www.haomeiwen.com/subject/pfzelxtx.html