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

xv8emn3q  于 2024-01-04  发布在  Android
关注(0)|答案(1)|浏览(317)

我有一个从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:

  1. def localProperties = new Properties()
  2. def localPropertiesFile = rootProject.file('local.properties')
  3. if (localPropertiesFile.exists()) {
  4. localPropertiesFile.withReader('UTF-8') { reader ->
  5. localProperties.load(reader)
  6. }
  7. }
  8. def flutterRoot = localProperties.getProperty('flutter.sdk')
  9. if (flutterRoot == null) {
  10. throw new FileNotFoundException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
  11. }
  12. def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
  13. if (flutterVersionCode == null) {
  14. flutterVersionCode = '1'
  15. }
  16. def flutterVersionName = localProperties.getProperty('flutter.versionName')
  17. if (flutterVersionName == null) {
  18. flutterVersionName = '1.0'
  19. }
  20. def keystoreProperties = new Properties()
  21. def keystorePropertiesFile = rootProject.file('key.properties')
  22. if (keystorePropertiesFile.exists()) {
  23. keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
  24. }
  25. apply plugin: 'com.android.application'
  26. // START: FlutterFire Configuration
  27. apply plugin: 'com.google.gms.google-services'
  28. // END: FlutterFire Configuration
  29. apply plugin: 'kotlin-android'
  30. apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
  31. android {
  32. compileSdkVersion 34
  33. sourceSets {
  34. main.java.srcDirs += 'src/main/kotlin'
  35. }
  36. lintOptions {
  37. disable 'InvalidPackage'
  38. }
  39. defaultConfig {
  40. // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
  41. applicationId "com.korecompliance.budtendur"
  42. minSdkVersion 21
  43. targetSdkVersion 33
  44. compileSdkVersion 34
  45. multiDexEnabled true
  46. versionCode flutterVersionCode.toInteger()
  47. versionName flutterVersionName
  48. testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  49. }
  50. signingConfigs {
  51. release {
  52. keyAlias keystoreProperties['keyAlias']
  53. keyPassword keystoreProperties['keyPassword']
  54. storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
  55. storePassword keystoreProperties['storePassword']
  56. }
  57. }
  58. buildTypes {
  59. release {
  60. signingConfig signingConfigs.release
  61. }
  62. }
  63. compileOptions {
  64. sourceCompatibility JavaVersion.VERSION_1_8
  65. targetCompatibility JavaVersion.VERSION_1_8
  66. }
  67. kotlinOptions {
  68. jvmTarget = '1.8'
  69. }
  70. }
  71. flutter {
  72. source '../..'
  73. }
  74. dependencies {
  75. implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
  76. implementation 'com.android.support:multidex:1.0.3'
  77. implementation "com.google.android.material:material:1.10.0"
  78. testImplementation 'junit:junit:4.12'
  79. androidTestImplementation 'androidx.test:runner:1.1.1'
  80. androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
  81. }
  82. configurations.all {
  83. resolutionStrategy {
  84. force "androidx.annotation:annotation-experimental:1.2.0"
  85. }
  86. }

字符串
我的gradle.properties:

  1. org.gradle.jvmargs=-Xmx4096M
  2. android.enableR8=true
  3. android.useAndroidX=true
  4. 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和编译版本以获得一些依赖项后,我能够成功构建。

相关问题