美文网首页
NDK r18整合opencv库异常

NDK r18整合opencv库异常

作者: babyukiss_f625 | 来源:发表于2018-12-04 20:52 被阅读0次

    Why

    ndkr18调用opencv异常。

    Google在NDK r18将删除gcc,所以Android开发jni的小伙伴们再也无法使用gcc来进行编译。通常我们在Application.mk中指定使用什么库来打包JNI代码:

    APP_STL := gnustl_shared

    但是在更新ndk bundle到r18后,此命令将报错,提示无法使用gcc进行编译。

    查看可选库

    Changes

    1. APP_STL := gnustl_shared ==> APP_STL := c++_shared

    2.sdk中的platform-tools的内容需要是platform-tools_r25-linux.zip以下(包含r25),因为在r25之后,“android"这个命令已经无法使用,会导致opencv编译过程中找不到该命令;

    配置完成之后可以在命令行中,使用"android”运行一下,看能否启动sdkmanager,如果能够启动,则表示此命令配置正常。

    3.如果需要编译opencv_contrib-4.0.0,改造ndk-10.config.py 内容==>

    ABIs = [

        ABI("2", "armeabi-v7a", "arm-linux-androideabi-4.9", cmake_vars=dict(ANDROID_ABI='armeabi-v7a with NEON')),

        ABI("3", "arm64-v8a",  "aarch64-linux-android-4.9"),

        ABI("5", "x86_64",      "x86_64-4.9"),

        ABI("4", "x86",        "x86-4.8"),

    ]

    cmake不知还此mips和armeabi了。

    4.本地环境配置可能存在误差,导致toolchain找不到,改造部分代码build_sdk.py:

           if toolchain is not None:

                self.cmake_vars['ANDROID_TOOLCHAIN_NAME'] = toolchain

            else:

                self.cmake_vars['ANDROID_TOOLCHAIN'] = 'clang'

                self.cmake_vars['ANDROID_STL'] = 'c++_static'

    ==>>

           #if toolchain is not None:

            #    self.cmake_vars['ANDROID_TOOLCHAIN_NAME'] = toolchain

            #else:

            self.cmake_vars['ANDROID_TOOLCHAIN'] = 'clang'

            self.cmake_vars['ANDROID_STL'] = 'c++_static'

    综上是我编译android sdk的时候更改过的内容,作为记录。

    相关文章

      网友评论

          本文标题:NDK r18整合opencv库异常

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