agp 和 gradle >= 8+ 的 flutter 插件的命名空间问题

问题描述 投票:0回答:1

我将fluttercompilesdkversion和targetsdkversion从34更新到35。然后将gradle更新到8.6,将agp更新到8.3.0。然后就会出现命名空间问题。我在 app/buildgradle 上添加了命名空间。但现在它要求插件也有命名空间的声明。但我不喜欢分叉或更改插件的想法。另外我需要使用compilesdk35所以我不能降级。任何其他解决方法可以忽略命名空间问题并能够运行 flutter 应用程序并构建

buildscript {
   ext.kotlin_version = '1.8.10'
   repositories {
     google()
     mavenCentral()
   }

  dependencies {
    classpath 'com.android.tools.build:gradle:8.3.0'
    // START: FlutterFire Configuration
    classpath 'com.google.gms:google-services:4.3.10'
    classpath 'com.google.firebase:firebase-crashlytics- 
    gradle:2.8.1'
    // END: FlutterFire Configuration
    classpath "org.jetbrains.kotlin:kotlin-gradle- 
    plugin:$kotlin_version"
   }
 }

pubspec.yaml

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.2
  bloc: ^8.1.2
  flutter_bloc: ^8.1.3
  objectbox: ^4.0.2
  objectbox_flutter_libs: any
  http: ^1.2.2
  equatable: ^2.0.5
  formz: ^0.7.0
  flutter_svg: ^2.0.6
  url_launcher: ^6.1.11
  envied: ^0.5.4+1
  flutter_secure_storage: ^9.2.2
  uuid: ^4.5.0
  shared_preferences: ^2.1.1
  flutter_localizations:
    sdk: flutter
  intl: ^0.19.0
  flat_buffers: ^23.5.26
  path: ^1.9.0
  path_provider: ^2.0.15
  mime: ^1.0.4
  dotted_decoration: ^2.0.0
  flutter_sticky_header:
  webview_flutter: ^4.2.1
  permission_handler: ^11.1.0
  geolocator: ^13.0.1
  package_info_plus: ^8.0.2
  device_info_plus: ^10.1.2
  http_parser: ^4.0.2
  contacts_service: ^0.6.3
  image_picker: ^1.1.2
  photo_view: ^0.15.0
  image_painter: ^0.6.1 
  flutter_pdfview: ^1.3.3
  flutter_cache_manager: ^3.3.0
  share_plus: ^10.0.2
  flutter_picker: ^2.1.0
  camera: ^0.11.0+2
  camera_android_camerax: ^0.6.10
  flutter_swipe_action_cell: ^3.1.1
  flutter_image_compress: ^2.0.3


android {
    namespace = 'com.example.sample'
    packagingOptions {
    pickFirst 'lib/x86/libc++_shared.so'
    pickFirst 'lib/x86_64/libc++_shared.so'
    pickFirst 'lib/armeabi-v7a/libc++_shared.so'
    pickFirst 'lib/arm64-v8a/libc++_shared.so'
   }

   compileSdkVersion 34
   ndkVersion flutter.ndkVersion

   compileOptions {
   sourceCompatibility JavaVersion.VERSION_1_8
   targetCompatibility JavaVersion.VERSION_1_8
  }

  kotlinOptions {
    jvmTarget = '1.8'
  }

  sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
  }

  defaultConfig {
    applicationId "com.example.sample"
    minSdkVersion 23
    targetSdkVersion 34
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    multiDexEnabled true
 }
android flutter gradle
1个回答
0
投票

由于您有很多依赖项,并且其中一些不是最新版本,因此您需要逐一检查它们并将它们升级到支持 API 35 的版本。

这是因为您已升级应用程序以支持 API 35,并且您自己收到的命名空间错误也适用于您正在使用的依赖项。

例如,您依赖于 url_launcher 版本6.1.11

url_launcher 的当前版本是 6.3.1,6.1.11 于 18 个月前发布(甚至在 API 35 存在之前)。

将所有依赖项升级到支持 API 35 的版本后,错误就会消失。

本质上,您所使用的依赖项的开发人员需要增强其代码以支持 API 35。

© www.soinside.com 2019 - 2024. All rights reserved.