初使用NDK的报错: Invalid Android ABI: armeabi. (armeabi is no longer supported. Use armeabi-v7axxxxxxx)

现在好像JNI的开发很热门,作为c++的渣渣的我决心入门来了解一下这到底是个什么东西

一开始的配置可以看这篇博客,相信现在大多数人的版本都是2.2.以上了,所以前面的比较具体的配置过程可以当做一个了解,看到底Java是怎么跟本地c++进行沟通的。

2.2以上版本的只需要在创建项目时注意下图的某些位置打钩即可:

  • Exceptions Support:如果您希望启用对 C++ 异常处理的支持,请选中此复选框。如果启用此复选框,Android Studio 会将 -fexceptions 标志添加到模块级 build.gradle 文件的 cppFlags 中,Gradle 会将其传递到 CMake。
  • Runtime Type Information Support:如果您希望支持 RTTI,请选中此复选框。如果启用此复选框,Android Studio 会将 -frtti 标志添加到模块级 build.gradle 文件的 cppFlags 中,Gradle 会将其传递到 CMake。

然后在项目创建的过程中,会报错,点击进行部件的下载就行,要确保:NDK、CMake、LLDB这3个东西都installed

然后我现在遇到了一个报错,大概就是:armeabi不可用之类的。

什么东西,小菜鸡真的不懂so和ABI,所以我找到了下面这篇博客

解决办法:

在上图这个位置添加以下代码即可,做的是引入第三方so库的操作:

ndk{
            moduleName "native-lib"
            abiFilters "x86","x86_64","armeabi-v7a","arm64-v8a"
        }

跑HelloWorld成功的截图:

可是,上面主要是基于新建项目才能进行JNI开发,但是很多时候我们都是想要在现有的工程上继续进行NDK开发,那么这时候NDK的环境又该怎么配置呢?

详细的可以看这篇博客,一步步来就行。

要注意的点主要是一些名称要根据自己的项目进行修改即可。

猜你喜欢

转载自blog.csdn.net/cyanchen666/article/details/82147120