为什么flutter在为Android构建转换androidx.activity:activity:1.8.0时会遇到此异常?

xv8emn3q  于 5个月前  发布在  Android
关注(0)|答案(1)|浏览(146)

我有一个从Flutter 1开始就存在的Flutter项目,一直是作为Web应用构建的。现在我正在尝试进行Android构建,并且遇到了一些我无法解决的异常。
下面是构建的输出:
%扑动清洁; flutter build appbundle清理Xcode工作区. 4.1s清理Xcode工作区. 1,987 ms正在删除内部版本... 199 ms正在删除.dart_tool... 3 ms正在删除.packages. 0 ms正在删除Generated. xcampus... 0 ms正在删除flutter_export_environment.sh... 0 ms正在删除临时版本... 1 ms正在删除. flutter-plugins-dependencies... 0 ms正在删除.flutter-plugins... 0 ms正在运行“flutter pub get”in flutter_client. 2,736ms
建筑物与健全的零安全
失败:生成失败,出现异常。

  • 错误:任务“:app:mergeReleaseAssets”执行失败。

无法解析配置“:app:releaseRuntimeClasspath”的所有文件。无法转换项目“activity.aar(androidx.activity:activity:1.8.0)'匹配属性{artifactType=android-assets}。>执行JetifyTransform失败:/Users/jeffchristy/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.8.0/4266 e2118 d565 daa 20212 d1726 e11 f41 e1 a4 d 0 ca/activity-1.8.0.aar. >无法转换'/Users/jeffchristy/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.8.0/4266e2118d565daa20212d1726e11f41e1a4d0ca/activity-1.8.0.aar' using Jetier. Reason:null.(使用--stacktrace运行以获取更多详细信息。)无法转换项目的活动。aar(androidx.activity:activity:1.8.0)'匹配属性{artifactType=android-assets}。>执行JetifyTransform失败:/Users/jeffchristy/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.8.0/4266e2118d565daa20212d1726e11f41e1a4d0ca/activity-1.8.0.aar. >无法转换'/Users/jeffchristy/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.8.0/4266 e2118 d565 daa 20212 d1726 e11 f41 e1 a4 d 0 ca/activity-1.8.0.aar'正在使用Jetier。原因:null。(使用--stacktrace运行以获取更多详细信息。)无法转换项目的活动。aar(androidx.activity:activity:1.8.0)'匹配属性{artifactType=android-assets}。>执行JetifyTransform失败:/Users/jeffchristy/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.8.0/4266e2118d565daa20212d1726e11f41e1a4d0ca/activity-1.8.0.aar. >无法转换'/Users/jeffchristy/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.8.0/4266e2118d565daa20212d1726e11f41e1a4d0ca/activity-1.8.0.aar' using Jetier. Reason:null.(使用--stacktrace运行以获取更多详细信息。)无法转换项目的活动。aar(androidx.activity:activity:1.8.0)'匹配属性{artifactType=android-assets}。>执行JetifyTransform失败:/Users/jeffchristy/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.8.0/4266e2118d565daa20212d1726e11f41e1a4d0ca/activity-1.8.0.aar. >无法转换'/Users/jeffchristy/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.8.0/4266 e2118 d565 daa 20212 d1726 e11 f41 e1 a4 d 0 ca/activity-1.8.0.aar'使用Jetier。原因:null。(使用--stacktrace运行以获取更多详细信息。)

  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整见解。
  • https://help.gradle.org获得更多帮助

BUILD FAQURY in 1 m 5s Running Gradle task 'BullleRelease'. 65.8s Gradle task BullleRelease失败,退出代码为% 1
我的应用build.gradle:

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')
if (flutterRoot == null) {
    throw new FileNotFoundException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

apply plugin: 'com.android.application'
// START: FlutterFire Configuration
apply plugin: 'com.google.gms.google-services'
// END: FlutterFire Configuration
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 34

    sourceSets {
        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.korecompliance.budtendur"
        minSdkVersion 21
        targetSdkVersion 33
        compileSdkVersion 34
        multiDexEnabled true
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:multidex:1.0.3'
    implementation "com.google.android.material:material:1.10.0"
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

configurations.all {
  resolutionStrategy {
    force "androidx.annotation:annotation-experimental:1.2.0"
  }
}

字符串
我的gradle.properties:

org.gradle.jvmargs=-Xmx4096M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true


我需要一个干净的建筑。
我已经尝试了几乎所有我能在StackOverflow上找到的调整来解决这个问题,包括清除缓存,只清除无法构建的文件,为这个aar添加解决策略,更改材料版本,并尝试不同的Android SDK版本。
有没有其他人在转换androidx.activity:activity:1.8.0时遇到过这个问题?

kdfy810k

kdfy810k1#

我找到了这个问题的根源,那就是应用程序是在旧版本的Flutter(v1)上创建的,并且一些Android构建工件与Flutter 3不兼容。
解决方法是在当前版本的Flutter上创建一个新项目,然后用新项目的android树替换现有项目的android树。在更新名称以匹配,并调整min sdk和编译版本以获得一些依赖项后,我能够成功构建。

相关问题