You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将calcapp.aar集成到Flutter应用时遇Dexing错误求助

解决Flutter集成AAR时的Dexing错误

先确认build.gradle配置正确性

先检查android/app/build.gradle里的配置是否到位:

  • 确保repositories块中添加了本地libs仓库:
    repositories {
        flatDir {
            dirs 'libs'
        }
        google()
        mavenCentral()
    }
    
  • 依赖声明要准确:
    dependencies {
        implementation(name: 'calcapp', ext: 'aar')
        // 其他项目依赖
    }
    

排查Dexing错误的常见方向

1. 解决重复依赖冲突

Dexing错误大多源于重复类或依赖版本冲突,执行以下命令查看完整依赖树,定位冲突项:

./gradlew app:dependencies

找到冲突的依赖后,用exclude排除重复部分,示例:

implementation(name: 'calcapp', ext: 'aar') {
    exclude group: 'com.example', module: 'conflicting-lib'
}

2. 启用MultiDex支持

如果应用或AAR包含的方法数超过65536,必须开启MultiDex:

  • 在android/app/build.gradle的defaultConfig中添加:
    defaultConfig {
        // 现有配置保持不变
        multiDexEnabled true
    }
    
  • 添加MultiDex依赖:
    dependencies {
        implementation 'androidx.multidex:multidex:2.0.1'
    }
    
  • 若使用自定义Application类,让它继承MultiDexApplication,或者在attachBaseContext中初始化:
    public class MyApp extends FlutterApplication {
        @Override
        protected void attachBaseContext(Context base) {
            super.attachBaseContext(base);
            MultiDex.install(this);
        }
    }
    
    并在AndroidManifest.xml中指定该Application:
    <application
        android:name=".MyApp"
        // 其他属性
    >
    

3. 统一Java版本兼容性

确保Gradle使用的Java版本和AAR兼容,在android/build.gradle中配置:

buildscript {
    ext.kotlin_version = '1.9.0' // 匹配Flutter 3.22.2的Kotlin版本
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.2' // 与Gradle 7.6.3兼容
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

tasks.withType(JavaCompile) {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}

同时在android/app/build.gradle的android块中补充:

android {
    // 现有配置保持不变
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    kotlinOptions {
        jvmTarget = '11'
    }
}

4. 深度清理后重新构建

除了flutter clean和flutter pub get,还要清理Gradle缓存:

./gradlew clean
flutter clean
flutter pub get
./gradlew assembleDebug

5. 验证AAR文件完整性

尝试重新获取或重新生成calcapp.aar,可以解压文件检查内部类文件是否正常,排除文件损坏的可能。


内容的提问来源于stack exchange,提问作者Henry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 08:42:34