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

如今好像JNI的開發很熱門,做爲c++的渣渣的我決心入門來了解一下這究竟是個什麼東西java

一開始的配置能夠看這篇博客,相信如今大多數人的版本都是2.2.以上了,因此前面的比較具體的配置過程能夠當作一個瞭解,看到底Java是怎麼跟本地c++進行溝通的。c++

2.2以上版本的只須要在建立項目時注意下圖的某些位置打鉤便可:gradle

  • 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個東西都installedui

而後我如今遇到了一個報錯,大概就是:armeabi不可用之類的。.net

什麼東西,小菜雞真的不懂so和ABI,因此我找到了下面這篇博客3d

解決辦法:code

在上圖這個位置添加如下代碼便可,作的是引入第三方so庫的操做:orm

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

跑HelloWorld成功的截圖:blog

 

但是,上面主要是基於新建項目才能進行JNI開發,可是不少時候咱們都是想要在現有的工程上繼續進行NDK開發,那麼這時候NDK的環境又該怎麼配置呢?開發

詳細的能夠看這篇博客,一步步來就行。

要注意的點主要是一些名稱要根據本身的項目進行修改便可。