從開源網站下載的源碼,需要自己編譯c源碼成so類庫。當時用Android studio 運行總是報錯”finished with non-zero exit value 2"報錯定位到build.gradle文件里負責編譯 task ndkBuild(type: Exec, description:... ...
從開源網站下載的源碼,需要自己編譯c源碼成so類庫。當時用Android studio 運行總是報錯
”finished with non-zero exit value 2"
報錯定位到build.gradle文件里負責編譯
task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') { println('executing ndkBuild') def ndkBuildPath = getNdkBuildPath(); commandLine ndkBuildPath, '-j8', '-C', file('src/main').absolutePath }
其實就是執行Ndkbuild.cmd這個命令。
網上搜了好多沒看懂
最後最簡單的辦法,就到Aplication.mk所在文件夾,手動在命令行里調用Ndkbuild進行編譯,看到確切的報錯提示了。application.mk文件里APP_ABI欄位有問題,這個ABI就是編譯目標平臺。因為開源文件原先發佈開發環境版本較早,一些ABI已經不支持了。刪掉就可以了。
APP_ABI := armeabi-v7a arm64-v8a x86 #armeabi mips
其中#是註釋掉的內容 arm64-v8a是我後來添加的。
最終,在Android studio里編譯執行就沒有問題了。