码迷,mamicode.com
首页 > 系统相关 > 详细

eclipse NDK jni配置

时间:2016-05-12 23:23:40      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:


技术分享技术分享



将会出现jni文件夹,即下面Hello_NDk.cpp和Android.mk

技术分享



此时会出现下面问题,虽然网上有人说可以用下面这种方式解决,没错是可以解决,但是又会出现另一个问题,那就是如果你想在jni目录下建c++工程及class,你会发现找不到相应的

技术分享


网上找得比较多得办法(感觉不好):

技术分享

后面又找到另外一种方法:

选中工程,右键->Properties,点击C/C++ General展开,点击 Path and Symbols,在右边Includes下,点击Add,把NDK文件夹下的jni头文件和相应的C++头文件添加进来。一定要填写完整的路径,比如我添加的两个路径分别是:

      E:\AndroidNDK\android-ndk-r10c\toolchains\mipsel-linux-android-4.8\prebuilt\windows-x86_64\lib\gcc\mipsel-linux-android\4.8\include

       E:\AndroidNDK\android-ndk-r10c\platforms\android-19\arch-arm\usr\include


即可解决问题。

技术分享技术分享

技术分享

技术分享

技术分享之后就是建立相应的java接口来与C/C++通信:


技术分享


技术分享

并在Java代码中引入so库


技术分享


将GetString类生成头文件,网上比较常见的是用Cmd命令生成的,但这种方式太麻烦了

技术分享

下面这种是通过直接在eclipse里配置的

1、首先先在工程新建一个

技术分享


然后代码参考下面

技术分享

</pre><pre code_snippet_id="1675487" snippet_file_name="blog_20160508_1_2733330" name="code" class="html"><?xml version="1.0" encoding="UTF-8"?>
<!-- ====================================================================== 
     2016年5月8日 下午6:21:49                                                        

     HelloNDK    
     description
                   
     hejia                                                                
     ====================================================================== -->
<project name="HelloNDK" default="BuildAllHeaders">
    <description>
            description
    </description>

    <!-- ================================= 
          target: BuildAllHeaders              
         ================================= -->
    <target name="BuildAllHeaders">
        <antcall target="BuildGetStringHeaders"> </antcall>
    	<antcall target="BuildGetIntHeaders"> </antcall>
    </target>

    <!-- - - - - - - - - - - - - - - - - - 
          target: BuildGetStringHeaders                      
         - - - - - - - - - - - - - - - - - -->
    <target name="BuildGetStringHeaders">
    	<javah destdir="./jni" classpath="./bin/classes/" class="com.example.hellondk.GetString"></javah>
    </target>
	<!-- ================================= 
          target: BuildGetIntHeaders              
         ================================= -->
    <target name="BuildGetIntHeaders" >
    	<javah destdir="./jni" classpath="./bin/classes/" class="com.example.hellondk.GetInt"></javah>
    </target>

</project>
</pre><pre code_snippet_id="1675487" snippet_file_name="blog_20160508_1_2733330" name="code" class="html">

配置Ant编译头文件

技术分享


技术分享

后面就是编译c++编译问题。网上有直接用ndk-builder编译的,但是那种方法太复杂了,每次建工程都要配置一大堆,才能使用,其中现在直接用CDT就可以了,按刚才那种方法配置,就能自动生成CDT Builder

技术分享


eclipse NDK jni配置

标签:

原文地址:http://blog.csdn.net/hejia729371286/article/details/51348353

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!