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

Flutter集成RazorPay测试模式运行报错:找不到classes.dex条目

解决Flutter集成RazorPay时“Failed to find entry 'classes.dex'”报错

1. 清理项目缓存并重建

执行以下命令彻底清理缓存后重新构建:

flutter clean
cd android && ./gradlew clean
flutter pub get
flutter run

2. 升级RazorPay依赖版本

当前razorpay_flutter: ^1.4.0可能与高版本Gradle/Android SDK存在兼容问题,修改pubspec.yaml升级到最新稳定版:

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.8
  razorpay_flutter: ^1.5.1  # 替换为最新稳定版本
  http: ^1.4.0

3. 优化Android Dex构建配置

在app/build.gradle.kts中添加Dex相关配置,确保生成正确的classes.dex文件:

android {
    // ...现有配置
    dexOptions {
        javaMaxHeapSize "4g"
    }

    buildTypes {
        release {
            signingConfig = signingConfigs.getByName("debug")
            multiDexKeepProguard file('multidex-config.pro')
        }
        debug {
            multiDexKeepProguard file('multidex-config.pro')
        }
    }
}

在app目录下创建multidex-config.pro文件,添加RazorPay类的保留规则:

-keep class com.razorpay.** {*;}
-dontwarn com.razorpay.**

4. 移除无关权限请求

代码中bluetoothConnect权限与支付功能无关,可能引入额外依赖冲突,删除相关代码:

  • 移除pubspec.yaml中的permission_handler依赖
  • 删除Main.dart中以下代码:
// 移除权限请求方法
Future<void> requestBluetoothPermission() async {
  if (await Permission.bluetoothConnect.isDenied) {
    await Permission.bluetoothConnect.request();
  }
}

// 移除_checkOpen方法中的权限调用
void _checkOpen() async {
  // 去掉这一行:await requestBluetoothPermission();
  var options = {
    // ...现有配置
  };
  // ...现有代码
}

5. 验证Gradle插件兼容性

确保项目级android/build.gradle.kts中的插件版本与gradle-8.9匹配:

plugins {
    id("com.android.application") version "8.4.0" apply false
    id("org.jetbrains.kotlin.android") version "1.9.20" apply false
    id("dev.flutter.flutter-gradle-plugin") version "1.0.0" apply false
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:05:11