本文章所用的工具版本
Android Studio 3.6.3
Gradle 5.6.4
開胃菜
- 在講 NDK 之前般哼,簡單介紹一下 NDK 是什么阳柔?先來看看官方的回答
- NDK 全稱是 Native Development Kit踢匣,翻譯過來是本地開發(fā)工具包,本質(zhì)上和 JDK / SDK 很類似添祸,這里不做過多的解釋拦惋,接下來讓我們開始搭建環(huán)境
環(huán)境配置其實(shí)非常簡單,安裝 NDK 和 CMake 相關(guān)的包就可以了
那么問題來了员寇,CMake 是什么東西鹰溜?我為什么要裝它?不裝行不行丁恭?
原來是一個(gè) C 語言的編譯工具,可以根據(jù)我們提供的腳本來編譯 so 庫斋日,跟 Gradle 的作用很類似牲览,只不過 CMake 是專門用來編譯本地語言的。
如果把 NDK 比喻成一碗飯恶守,那么 CMake 就是一雙筷子第献,有飯和筷子才能吃飯,缺一不可兔港。
創(chuàng)建一個(gè) NDK 工程
- 接下來讓我們創(chuàng)建一個(gè) NDK 的 Hello Work 工程
- 這里有一個(gè)地方需要注意庸毫,包名不能帶下劃線
- 點(diǎn)擊 finish 按鈕,等待創(chuàng)建即可
> Failed to apply plugin [class 'org.gradle.api.plugins.BasePlugin']
> Could not create service of type OutputFilesRepository using ExecutionGradleServices.createOutputFilesRepository().
- 但是等來的不是驚喜衫樊,而是驚嚇
- 我們手動(dòng)把 NDK 目錄添加到 local.properties 文件即可飒赃,然后點(diǎn)擊同步
- 現(xiàn)在編譯是沒有問題了利花,接下來讓我們運(yùn)行一下
> Could not create service of type DefaultGeneralCompileCaches using GradleScopeCompileServices.createGeneralCompileCaches().
- 現(xiàn)在又出現(xiàn)了一個(gè)報(bào)錯(cuò),這種錯(cuò)誤我也不知道是什么錯(cuò)誤载佳,好像是 Studio 的一個(gè) Bug炒事,直接在命令中輸入
./gradlew compileDebugJavaWithJavac --stacktrace
- 然后再運(yùn)行項(xiàng)目
可以看到項(xiàng)目已經(jīng)順利跑起來了
這兩個(gè)報(bào)錯(cuò)不一定是每個(gè)人都能遇到的,有可能是我的問題蔫慧,大家遇到的話可以參考我的解決方法