FlutterPlugin插件开发

2025-04-06  本文已影响0人  h2coder

创建插件工程

flutter create --org com.example --template=plugin --platforms=android,ios,linux,macos,windows -a kotlin -i swift hello

创建插件的例子

# 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

运行一次plugin,生成相关文件

打包apk命令

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\

常见问题

Android Studio打开android目录,flutter相关类找不到

# Android sdk 路径
sdk.dir=C\:\\Users\\XM20240809\\AppData\\Local\\Android\\Sdk
# 配置flutter的sdk路径
flutter.sdk=C\:\\Users\\XM20240809\\fvm\\versions\\3.29.2
// 加载 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")

        // 通过compileOnly,添加这句依赖
        compileOnly(files("$flutterSdk/bin/cache/artifacts/engine/android-arm/flutter.jar"))
    }
}

插件运行,提示Gradle不支持jdk21

flutter config --jdk-dir C:\Dev\Java\jdk-17
上一篇 下一篇

猜你喜欢

热点阅读