Flutter插件image_cropper在Android设备崩溃:java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/app/AppCompatActivity
我之前踩过这个坑,这个错误说白了就是你的Android项目找不到AndroidX的AppCompat类,大概率是因为image_cropper插件依赖AndroidX,但你的项目配置没跟上,或者存在依赖冲突的情况。给你几个亲测有效的解决办法:
先确认项目是否启用AndroidX
打开android/gradle.properties文件,确保里面有这两行关键配置:android.useAndroidX=true android.enableJetifier=true第二行的Jetifier会自动把第三方库的旧Support依赖转换成AndroidX,对老项目适配新插件特别重要。
更新Gradle相关版本
版本不兼容是这类问题的重灾区,打开android/build.gradle文件,把Android Gradle插件版本更新到稳定的兼容版,比如:buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.4.2' } }同时别忘了同步
android/gradle/wrapper/gradle-wrapper.properties里的Gradle版本,比如:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip你可以根据插件文档或者Android Studio的提示选匹配的版本。
强制统一AppCompat依赖版本
如果项目里其他插件依赖了不同版本的AppCompat,很容易出现解析冲突。在android/app/build.gradle的dependencies块里直接添加指定版本的依赖:dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' }或者通过配置强制所有库用同一个版本:
configurations.all { resolutionStrategy.force 'androidx.appcompat:appcompat:1.6.1' }清理缓存后重建项目
有时候缓存会导致依赖解析异常,按这个步骤来:- 执行
flutter clean命令 - 手动删除
android/.gradle和android/app/build文件夹 - 重新运行
flutter run
- 执行
另外,如果你的项目之前一直用的是旧的Support库而非AndroidX,建议直接用Android Studio的Refactor > Migrate to AndroidX工具完成迁移,它会自动替换所有相关的类和依赖,比手动改省心多了。
内容来源于stack exchange

