關(guān)鍵詞:
windows only具篇, 新手向拳氢, 老項(xiàng)目募逞。
前言
最近把老版本的手游打android包蛋铆,用到了ndk,又因?yàn)閍s(android studio)用了新版本放接,導(dǎo)致打包一個(gè)辛苦刺啦。
常見(jiàn)問(wèn)題:
- as到了高版本,用的也是高版本的jdk透乾,而必須保證as和gradle使用相同的jdk,否則莫名其妙很多問(wèn)題
- 高版本as下載了最新的ndk磕秤,gradle又不認(rèn)識(shí)
- 傻不唧唧的升級(jí)gradle乳乌,吭哧吭哧sync半天,最后還是編譯不過(guò)市咆。汉操,又必須把gradle退回來(lái)。
而as需要配置的很多:有的配置在gradle(用groovy語(yǔ)法)蒙兰,有的配置在xml磷瘤,有的配置在as的settings中
gradle文件還有兩個(gè),一個(gè)是項(xiàng)目的搜变,一個(gè)是app的
- gradle
- gradle版本 gradle/wrapper/gradle-wrapper.properties
distributionUrl=https://services.gradle.org/distributions/gradle-4.8-all.zip - as用的gradle plugin版本 文件:./build.gradle
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
}
} - 奇怪的是采缚,上面2個(gè)版本號(hào)不一樣,也不知道其匹配規(guī)則是什么挠他?
- gradle版本 gradle/wrapper/gradle-wrapper.properties
- as的sdk版本 app/build.gradle
android {
defaultConfig {
minSdkVersion 16 -- 低于17 首次執(zhí)行應(yīng)用會(huì)彈窗 警告安全問(wèn)題
targetSdkVersion 26 -- 不用新功能不需要改
compileSdkVersion 29 -- 這個(gè)不能大于as的版本
ndk {
abiFilters 'armeabi-v7a' 'arm64-v8a' -- 沒(méi)有arm64-v8a 首次執(zhí)行應(yīng)用會(huì)彈窗 警告兼容性
}
}
} - 本地配置 ./local.properties 這個(gè)又不適合放在svn
ndk.dir=C:\Users\Administrator\AppData\Local\Android\Sdk\ndk-bundle
sdk.dir=C:\Users\Administrator\AppData\Local\Android\Sdk - 權(quán)限
文件:app/src/main/AndroidManifest.xml
android:usesCleartextTraffic="true" 否則只能用https不能用http - as的配置(as 版本 Chipmunk)
- Android SDK
File -> Settings -> Appearance & Behavior -> System Settings -> Android SDK - Gradle
File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle
需要把jdk配置的跟as的jdk一致: Android Studio default JDK
- Android SDK
使用
如果你看上以上文檔扳抽,基本就會(huì)了手動(dòng)配置;如果想要更方便殖侵,往下看贸呢。
- 查看配置:
npm run your/project/path
- 檢查列表
as是否跟gradle plugin版本一致
gradle plugin是否跟 gradle版本一致
gradle版本是否跟ndk版本一致
android sdk minSdkVersion是否有安全問(wèn)題
android ndk abiFilters是否有兼容性問(wèn)題
AndroidManifest.xml是否允許http
如果有問(wèn)題,對(duì)應(yīng)提示來(lái)修改即可拢军。預(yù)制一些config楞陷,直接使用
npm run your/project/path --config=chipmuck-gradle3