【【Android进阶】Android使用 flutter】1.在其他目录中依赖flutter SDK
文章图片
plugins {
id 'com.android.library'
id 'kotlin-android'
}// 在其他目录中依赖flutter SDK
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}def flutterRoot = localProperties.getProperty('flutter.sdk')
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"android {
compileSdkVersion 29defaultConfig {
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
versionNameSuffix kotlin_version
}
profile {
versionNameSuffix kotlin_version
}
debug {
versionNameSuffix kotlin_version
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}flutter {
source '../..'
}dependencies {implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.2.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
2.只打包flutter所支持的架构
文章图片
android {
compileSdkVersion 29sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}lintOptions {
disable 'InvalidPackage'
}defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.flutter_app"
minSdkVersion 16
targetSdkVersion 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
ndk {
abiFilters "arm64-v8a", "x86_64", "x84" // 只打包flutter所支持的架构,flutter没有armeabi、armeabi-v7a架构的so, x86是为了兼容模拟器
}
}buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
profile {
applicationIdSuffix flutterVersionName
versionNameSuffix flutterVersionName
}
}packagingOptions {
//确保app与asr_plugin 都依赖lib/flutter.so,merge时不冲突
pickFirst 'lib/x86_64/libflutter.so'
pickFirst 'lib/arm64-v8a/libflutter.so'
pickFirst 'lib/x84/libflutter.so'
}
}
推荐阅读
- Android 开发 3 年,被要求转 Flutter ,Flutter 真的很香吗
- Flutter主题切换 flutter redux
- Flutter AppBar入门使用
- flutter-样式
- 跨平台新潮,写给程序员的Flutter完整开发实战详解,带你玩转Flutter
- android studio flutter代理设置问题
- 适用于 Flutter 的 Google 移动广告 SDK 正式版现已发布
- 写给程序员的Flutter完整开发实战详解,轻轻松松解决跨平台烦恼
- flutter添加到android原生