Flutter集成Revolut Payment遇未解析引用错误求助
求助:Flutter集成Revolut Pay时Kotlin代码报错
我正尝试将Revolut Payment集成到Flutter项目中,操作过程中在MainActivity.kt文件里遇到两个编译错误:
- Unresolved reference: RevolutPayEnvironment
- Unresolved reference: RevolutPayments
我的Kotlin代码如下:
package com.example.foodbourge_mobile_app import androidx.annotation.NonNull import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.engine.FlutterEngine import io.flutter.plugin.common.MethodChannel import android.content.Context import android.content.ContextWrapper import android.content.Intent import android.content.IntentFilter import android.os.BatteryManager import android.os.Build.VERSION import android.os.Build.VERSION_CODES class MainActivity: FlutterActivity() { private val CHANNEL = "samples.flutter.dev/revolut_pay" override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { super.configureFlutterEngine(flutterEngine) fun getBatteryLevel(): Int { val batteryLevel: Int if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) { val batteryManager = getSystemService(Context.BATTERY_SERVICE) as BatteryManager batteryLevel = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) } else { val intent = ContextWrapper(applicationContext).registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED)) batteryLevel = intent!!.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) * 100 / intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1) } return batteryLevel } fun payByRevolut(): Int { RevolutPayments.revolutPay.init( environment = RevolutPayEnvironment.SANDBOX, // Change to MAIN for production merchantPublicKey = "10ccaaa5-9316-44e9-9da1-2e714c3310c0", requestShipping = false, // customer = Customer( // name = "John Doe", // email = "john@example.com", // phoneNumber = "1234567890", // dateOfBirth = "1990-01-01" // ) ) return 0 } MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler { call, result -> if (call.method == "getBatteryLevel") { val batteryLevel = getBatteryLevel() if (batteryLevel != -1) { result.success(batteryLevel) } else { result.error("UNAVAILABLE", "Battery level not available.", null) } } else { result.notImplemented() } } } }
我已经在Android层级的build.gradle中添加了以下依赖:
implementation "com.revolut:revolutpayments:1.0.0" implementation "com.revolut:revolutpay:2.2"
怀疑是遗漏了相关导入语句,恳请帮忙解决这两个错误。
解决方案
你的推测正确,这两个错误确实是缺少对应Kotlin导入语句导致的,同时需要注意依赖版本兼容性问题,具体解决步骤如下:
- 添加必要的导入语句
在MainActivity.kt的import区域添加以下两行:
import com.revolut.revolutpayments.RevolutPayments import com.revolut.revolutpayments.environment.RevolutPayEnvironment
排查依赖版本冲突
你同时引入了revolutpayments:1.0.0和revolutpay:2.2,这两个库可能存在版本兼容问题。建议核对官方文档确认正确的依赖组合,或者统一使用最新兼容版本(通常revolutpay是核心库,需根据文档调整依赖配置)。同步并清理项目
添加导入后,点击Android Studio的Sync Project with Gradle Files按钮同步项目,再执行Build > Clean Project和Build > Rebuild Project清理编译缓存。
如果导入后仍报错,检查External Libraries目录下是否存在对应的Revolut库文件,若缺失则尝试刷新Gradle依赖或检查网络连接。
内容的提问来源于stack exchange,提问作者Yunesh Shrestha
相关产品推荐
相关产品推荐

