码迷,mamicode.com
首页 > 移动开发 > 详细

使用Android Studio自带的NDK编译JNI

时间:2017-04-30 15:18:37      阅读:5009      评论:0      收藏:0      [点我收藏+]

标签:undefined   www   c++   war   span   print   ken   app   missing   

/**********************************************************************************
 *                      使用Android Studio自带的NDK编译JNI
 * 说明:
 *     省得自己另外去下载NDK,编译JNI,麻烦。
 *              
 *                                          2017-4-30 深圳 龙华民治樟坑村 曾剑锋
 *********************************************************************************/

一、参考文档:
    1. NDK环境搭建-windows篇
        http://www.jianshu.com/p/708e6bf68ae9
    2. Mistake in documentation/error message?
        https://github.com/android-ndk/ndk/issues/264
    3. 编译一个模块时出现undefined reference to `__android_log_print 
        http://bbs.csdn.net/topics/360020076

二、error:
    1. 错误1:
        1. 错误现象:
            D:\zengjf\SourceCode\Android\android_app\Test>ndk-build
            C:/Users/zengjf/AppData/Local/Android/Sdk/ndk-bundle/build//../build/core/build-binary.mk:687: Android NDK: Module zengjf depends on undefined modules: android_runtime nativehelper cutils utils log
            C:/Users/zengjf/AppData/Local/Android/Sdk/ndk-bundle/build//../build/core/build-binary.mk:701: *** Android NDK: Aborting (set APP_ALLOW_MISSING_DEPS=true to allow missing dependencies)    .  Stop.

            D:\zengjf\SourceCode\Android\android_app\Test>
        2. 解决方法
            1. C:\Users\zengjf\AppData\Local\Android\Sdk\ndk-bundle\build\core\build-binary.mk
            2. 修改内容:
                ...
                ifdef undefined_libs
                    $(call __ndk_warning,Module $(LOCAL_MODULE) depends on undefined modules: $(undefined_libs))

                    # https://github.com/android-ndk/ndk/issues/208
                    # ndk-build didnt used to fail the build for a missing dependency. This
                    # seems to have always been the behavior, so theres a good chance that
                    # there are builds out there that depend on this behavior (as of right now,
                    # anything using libc++ on ARM has this problem because of libunwind).
                    #
                    # By default we will abort in this situation because this is so completely
                    # broken. A user may define APP_ALLOW_MISSING_DEPS to "true" in their
                    # Application.mk or on the command line to revert to the old, broken
                    # behavior.
                    APP_ALLOW_MISSING_DEPS=true    // add this line 
                    ifneq ($(APP_ALLOW_MISSING_DEPS),true)
                        $(call __ndk_error,Aborting (set APP_ALLOW_MISSING_DEPS=true to allow missing dependencies))
                    endif
                endif
                ...
    2. 错误2:
        1. 错误现象:
            undefined references to `__android_log_print follow
        2. 解决方法:
            Android.mk文件中加入LOCAL_LDLIBS += -llog即可

 

使用Android Studio自带的NDK编译JNI

标签:undefined   www   c++   war   span   print   ken   app   missing   

原文地址:http://www.cnblogs.com/zengjfgit/p/6789317.html

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