1. 程式人生 > 其它 >切換ndk-build到gradle-build

切換ndk-build到gradle-build

接到一個任務

將現有的ndk-build 切換到gradle build

一開始是網上找資料 +現有專案的gradle指令碼東拼西湊   能夠buildsuccessful  

但是出來的apk  你都不知道是哪裡出錯導致的

然後開始了control +c /v 大法

找現成的 gayhub 搜尋gradle jni android

 ./gradlew build    

報錯Android home  沒定義 新增local.properties

test@qemu05:~/zhekun/gradlebuild/Android-hello-jni_Gradle$ cat local.properties
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.

# location of the SDK. This is only used by Ant
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=/home/test/env/sdk
#ndk.dir=/home/test/env/ndk/21.3.6528147
ndk.dir=/home/test/env/ndk/r20b

報錯

A problem occurred evaluating root project 'hello-jni'.
> Failed to apply plugin [id 'android']
> Gradle version 2.10 is required. Current version is 5.4.1.

解決方法並設定環境變數  但是後來好像沒解決

wget https://downloads.gradle-dn.com/distributions/gradle-2.1-all.zip

test@qemu05:~/zhekun/gradlebuild/Android-hello-jni_Gradle$ cat ~/.bashrc|grep gradle


export PATH=/home/test/zhekun/gradlebuild/gradle-2.2/bin:$PATH

然後換了一種執行方式

 這年頭拿來主義也不容易啊

compileSdkVersion:編譯時的環境,與執行時無關。把這個設定成最高,可以避免使用被棄用的API。

minSdkVersion:app軟體執行時支援的最低的Android版本。

targetSdkVersion:建立Android專案使用的API版本。使用低版本API就能實現的功能就不要用更高的API版本,因為高版本API可能導致程式的不相容,影響app在不同安卓版本手機中的顯示效果。但也要注意,高版本API會修復和完善低版本中出現的問題,提供更多更好的類和介面給開發者使用。同時高版本API也會新增一些方法和屬性,以前多行程式碼才能搞定的事,現在可能只要一行程式碼就能搞定。

===========================================================

開始將公司的程式碼結構轉移到這個helloworld

很明顯AndroidManifest.xml這裡的  package="com.intel.btft.androidlog"要按照jni目錄結構改

/home/test/zhekun/gradlebuild/Android-hello-jni_Gradle/src/com/intel/btft/androidlog

剛剛不知道改了什麼

build successful

然後還沒高興幾秒鐘 被我改fail了

看來定時備份很重要啊 TAT

FAILURE: Build failed with an exception.

* What went wrong:
Task 'build.gradle' not found in root project 'androidlog'.