創(chuàng)建插件工程
- 通過(guò)
--org來(lái)指定組織名稱,例如com.example,一般就是包名的組織部分
- 通過(guò)
--platforms來(lái)指定支持的平臺(tái),支持android,ios,linux,macos,windows等平臺(tái)
- 通過(guò)
-a、-i,來(lái)指定安卓和iOS平臺(tái)的開發(fā)語(yǔ)言,例如kotlin和swift
flutter create --org com.example --template=plugin --platforms=android,ios,linux,macos,windows -a kotlin -i swift hello
創(chuàng)建插件的例子
# iOS為objc,Android為java
flutter create --org com.atmob --template=plugin --platforms=android,ios -i objc -a java keyboard_sample
# iOS為swift,Android為kotlin
flutter create --org com.atmob --template=plugin --platforms=android,ios -i swift -a kotlin keyboard_sample
運(yùn)行一次plugin,生成相關(guān)文件
- 方式一,AndroidStudio打開plugin工程,直接運(yùn)行,來(lái)拉取依賴和生成相關(guān)文件
- 方式二,通過(guò)終端,cd到
keyboard_sample/example目錄, flutter build apk --config-only
打包apk命令
- 測(cè)試包構(gòu)建release包腳本:
flutter build apk --release --target-platform android-arm,android-arm64 -v --obfuscate --split-debug-info=./debug-info\
flutter build apk --debug --target-platform android-arm,android-arm64 -v --obfuscate --split-debug-info=./debug-info\
flutter build apk --release -v --obfuscate --split-debug-info=./debug-info\
flutter build appbundle -v --obfuscate --split-debug-info=./debug-info\
常見(jiàn)問(wèn)題
Android Studio打開android目錄,flutter相關(guān)類找不到
-
local.properties文件,添加flutter的sdk的位置
# Android sdk 路徑
sdk.dir=C\:\\Users\\XM20240809\\AppData\\Local\\Android\\Sdk
# 配置flutter的sdk路徑
flutter.sdk=C\:\\Users\\XM20240809\\fvm\\versions\\3.29.2
-
android目錄下的build.gradle文件,讀取該配置,以及添加依賴
// 加載 local.properties 文件
// 注意:需要在 local.properties 文件中配置你的flutter的sdk目錄,例如:flutter.sdk=C\:\\Users\\XM20240809\\fvm\\versions\\3.29.2
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withInputStream { stream ->
localProperties.load(stream)
}
}
// 讀取變量
def flutterSdk = localProperties.getProperty('flutter.sdk')
android {
// 省略其他...
dependencies {
testImplementation("org.jetbrains.kotlin:kotlin-test")
testImplementation("org.mockito:mockito-core:5.0.0")
// 通過(guò)compileOnly,添加這句依賴
compileOnly(files("$flutterSdk/bin/cache/artifacts/engine/android-arm/flutter.jar"))
}
}
插件運(yùn)行,提示Gradle不支持jdk21
- 本人的Andoid Studio和Flutter版本不是最新的,創(chuàng)建的插件使用的Gradle版本是7.x,同事的版本都是最新的,F(xiàn)lutter默認(rèn)使用的jdk是Android Studio上自帶的,為jdk21,而Gradle 7.x版本還不支持,所以需要需要手動(dòng)指定Flutter使用的jdk為自己安裝的jdk17,或者將插件使用的gradle升級(jí)到8.x,但改動(dòng)有點(diǎn)大,所以簡(jiǎn)單點(diǎn)就是手動(dòng)指定jdk版本,最后sync同步一下項(xiàng)目即可
flutter config --jdk-dir C:\Dev\Java\jdk-17
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。