[Android NDK]自己动手实现TestJni

[Android NDK]自己动手实现TestJni

  • 在Eclipse中新建Android Application Project

    1. 工程名:TestJni

    2. 包名:com.example.testjni

      这里写图片描述

  • Add Android Native Support

    1. 鼠标移至工程TestJni,点击鼠标右键

    2. 选择Android Tools

    3. 选择And Native Support
      这里写图片描述

    4. 点击Finish

    5. 完成后,TestJni中出现jni、libs和obj这三个文件夹

  • 在文件夹jni中添加c文件

    1. 文件名:com_example_testjni_JniClient.c

    2. 代码如下

      
      #include "jni.h"
      
      
      #include "stdio.h"
      
      jstring
      Java_com_example_testjni_JniClient_HelloWorld( JNIEnv* env,
                                                     jobject thiz )
      {
      
       return (*env)->NewStringUTF(env, "my GF is xiao xiao " );
      }
    3. 在eclipse的C/C++界面进行编译编译

      点击下图中红色框中的图标

      这里写图片描述

    4. 若编译出现问题

      (1)问题分析:没有将jni.h导入

      (2)解决方法:

      ​ <1>参照以下步骤:Project Properties -> C/C++ General -> Path and Symbols选择include标签,Add ->jni.h的路径,且选中All languages.最后Apply -> OK
      ​ <2>如果添加了头文件还是问题,那可能是因为工程是C++工程,但代码是用c风格来写的,解决方法是将工程文件”.project”中的org.eclipse.cdt.cpre.ccnature行去掉,重新打开Eclipse工程。

  • 修改Android.mk文件

    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    LOCAL_MODULE    := TestJni    //生成的so库的名称
    LOCAL_SRC_FILES := com_example_testjni_JniClient.c   //调用的名称
    include $(BUILD_SHARED_LIBRARY)
  • 在文件夹jni中添加Application.mk文件

    
    #APP_ABI :=x86
    
    APP_ABI :=all
  • 在JAVA代码中加入库的载入代码及接串口声明&调用代码

    //调用函数
    String str = JniClient.HelloWorld(); 
    //声明代码
    static public native String HelloWorld();
    //库载入代码
    static
        {
            System.loadLibrary("TestJni");
        }
  • 调试运行

    运行结果:显示c文件返回的字符串:my GF is xiao xiao

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值