IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]Learning Android 第十五章 NDK 翻译总结

    lincyang发表于 2011-07-23 22:22:53
    love 0

    这篇文章对入门NDK非常有帮助,今天晚上刚刚把代码在我的 环境下跑起来。

    我的环境是Fedora14,我的Eclipse for java也安装了CDT支持C、C++开发。

    之前说过要把项目上传的,地址:http://download.csdn.net/source/3464733


    为什么要写这个总结呢?

    我感觉还是有些必要的。NDK开发涉及到Java和C/C++的交互,在开发过程中难免遇到错误和这样那样的问题。我现在linux下做NDK开发要比Windows下简单了下,少了一个环节。

    对于刚入门的同学,找java的jni相关的文章就不是很多,我之前写过一篇:http://blog.csdn.net/lincyang/article/details/6528360

    原来sun写的Java关于jni的文章:http://java.sun.com/docs/books/jni/html/jniTOC.html,但是第一个例子就不太好写,可以和我上面的文章比较着看,把第一个例子跑起来就好了。


    在文章例子中有一个致命的错误,造成了编译失败。

    那就是java文件中函数定义的参数类型是int,而java生成的头文件中相对应的函数中参数类型就变成long了。

    这个错误我已经在书的官网上comment了,没有直接联系到作者也很遗憾。


    linc yang – Posted today edit comment

    public static native long fibN(int n); //

        // Native implementation - iterative
        public static native long fibNI(int n);  //
    

    but the head file is: ... JNIEXPORT jlong JNICALL Java_com_marakana_FibLib_fibN (JNIEnv , jclass, jlong); ... JNIEXPORT jlong JNICALL Java_com_marakana_FibLib_fibNI (JNIEnv , jclass, jlong); ...

    there are something wrong. modify : public static native long fibN(long n); //

    // Native implementation - iterative public static native long fibNI(long n); //


    希望本文能对大家有帮助,做技术的,多沟通很重要!




沪ICP备19023445号-2号
友情链接