【Android进阶】Android使用 flutter

【【Android进阶】Android使用 flutter】1.在其他目录中依赖flutter SDK
【Android进阶】Android使用 flutter
文章图片

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进阶】Android使用 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' } }

    推荐阅读