Результаты Flutter Android CCAveneue Payment SDK ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основноеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Результаты Flutter Android CCAveneue Payment SDK ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основное

Сообщение Anonymous »


Я пытаюсь интегрировать платежный шлюз CC-Avenue в свое приложение Flutter, начиная с Android, следуя их документации, но получаю следующую ошибку:

E/AndroidRuntime(16499): вызвано: java.lang.NullPointerException: попытка вызвать виртуальный метод 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)' для нулевой ссылки на объект E/AndroidRuntime(16499): по адресу com.ccavenue.dubaisdk.PaymentOptions.onCreate(SourceFile:16). E/AndroidRuntime(16499): в android.app.Activity.performCreate(Activity.java:7144) E/AndroidRuntime(16499): в android.app.Activity.performCreate(Activity.java:7135) E/AndroidRuntime(16499): в android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) E/AndroidRuntime(16499): в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2938) E/AndroidRuntime(16499): ... еще 11 W/System.err(16499): java.lang.Exception: вызовите стек вызовов killProcess! пид=16499 W/System.err(16499): в android.os.Process.killProcess(Process.java:915) W/System.err(16499): по адресу com.android.internal.os.RuntimeInit$KillApplicationHandler.uncaughtException(RuntimeInit.java:157) W/System.err(16499): по адресу com.google.firebase.crashlytics.internal.common.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:62) W/System.err(16499): в java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068) W/System.err(16499): в java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063) W/System.err(16499): в java.lang.Thread.dispatchUncaughtException(Thread.java:1955) I/Process (16499): Отправка сигнала. ПИД: 16499 СИГНАЛ: 9 вот MainActivity.kt

пакет com.pavel.dent.f9xtechnology.crown_version_2 импортировать android.content.Intent импортировать androidx.annotation.NonNull импортировать io.flutter.embedding.android.FlutterActivity импортировать com.ccavenue.dubaisdk.PaymentOptions импортируйте com.ccavenue.dubaisdk.externalModel.* импортировать io.flutter.embedding.engine.FlutterEngine импортировать io.flutter.plugin.common.MethodChannel класс MainActivity: FlutterActivity(), AvenuesTransactionCallBack.stateListener { частный val CHANNEL = "plugin_ccavenue"; сопутствующий объект { частный var flutterResult: MethodChannel.Result? = ноль } переопределить веселье configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { super.configureFlutterEngine(flutterEngine) MethodChannel(flutterEngine.dartExecutor.binaryMessenger, КАНАЛ).setMethodCallHandler {вызов, результат -> if (call.method == "payCCAvenue") { MainActivity.flutterResult = результат AvenuesTransactionCallBack.getInstance().setListener(this) val m = MerchantDetails() m.accessCode = call.argument("accessCode").toString() m.merchantId = call.argument("mId").toString() m.currency = call.argument("валюта").toString() m.amount = call.argument("сумма").toString() m.redirectUrl = call.argument("redirect_url").toString() m.setCancel_url(call.argument("cancel_url").toString()) m.orderId = call.argument("order_id").toString() m.customerId = call.argument("customer_id").toString() m.trackingId = call.argument("tracking_id").toString() m.requestHash = call.argument("request_hash").toString() if (call.argument("display_address").toString() == "Y") { m.isShowAddr = правда } m.isCCAvenuePromo = правда m.promoCode = call.argument("promo").toString() m.add1 = call.argument("merchantParam1").toString() m.add2 = call.argument("merchantParam2").toString() m.add3 = call.argument("merchantParam3").toString() m.add4 = call.argument("merchantParam4").toString() m.add5 = call.argument("merchantParam5").toString() val b = Адрес выставления счета() b.name = call.argument("имя_биллинга").toString() b.address = call.argument("биллинг_адрес").toString() b.country = call.argument("billing_country").toString() b.state = call.argument("billing_state").toString() b.city = call.argument("billing_city").toString() b.telephone = call.argument("billing_telephone").toString() b.email = call.argument("billing_email").toString() val s = Адрес доставки() s.name = call.argument("имя_доставки").toString() s.address = call.argument("адрес_доставки").toString() s.country = call.argument("страна_доставки").toString() s.state = call.argument("shipping_state").toString() s.city = call.argument("город_доставки").toString() s.telephone = call.argument("shipping_telephone").toString() val si = Стандартные инструкции() si.si_type = call.argument("siType").toString() si.si_mer_ref_no = call.argument("siRef").toString() si.si_is_setup_amt = call.argument("siSetupAmount").toString() si.si_amount =call.argument("siAmount").toString() si.si_start_date = call.argument("siStartDate").toString() si.si_ Frequency_type = call.argument("siFreqType").toString() si.si_ Frequency = call.argument("siFreq").toString() si.si_bill_cycle = call.argument("siBillCycle").toString() val i = Intent(this, PaymentOptions::class.java) i.putExtra("торговец", м) i.putExtra("биллинг", b) i.putExtra("доставка", с) i.putExtra("стандартные инструкции", si) startActivity(я) } еще { результат.notImplemented() } } } переопределить удовольствие onSuccess(p0: Нить?) { runOnUiThread {MainActivity.flutterResult?.success(p0)} } переопределить fun onError(p0: String?) { runOnUiThread {MainActivity.flutterResult?.success(p0)} } переопределить fun onCancel(p0: String?) { runOnUiThread {MainActivity.flutterResult?.success(p0)} } } вот кодовая форма dart

void _initiateSDK() async { окончательные данные Map = {}; данные["mId"] = "26726554327"; data['accessCode'] = "NCHFUEYDEY8Y8Y3218"; data['currency'] = "AED"; данные['сумма'] = "120,00"; data['redirect_url'] = "http://example.html"; data['cancel_url'] = "http://example.html"; data['order_id'] = "727629967222288"; data['customer_id'] = "728728728"; data['tracking_id'] = "2678278278272"; data['request_hash'] = "HDUY7WYD9UY8WDU8U38DUE83U8DYU38Y8YF83YF83Y8F383U8"; данные['промо'] = ""; data['billing_name'] = "Джон"; data['billing_address'] = "Сантакруз"; data['billing_country'] = "Индия"; data['billing_state'] = "Махараштра"; data['billing_city'] = "Мумбаи"; data['billing_telephone'] = "67566523452112"; data['billing_email'] = "mymail@gmail.com"; data['shipping_name'] = "Джон"; data['shipping_address'] = "Сантакруз"; data['shipping_country'] = "Индия"; data['shipping_state'] = "Махараштра"; data['shipping_city'] = "Мумбаи"; data['shipping_telephone'] = "67566523452112"; данные['merchantParam1'] = ""; данные['merchantParam2'] = ""; данные['merchantParam3'] = ""; данные['merchantParam4'] = ""; данные['merchantParam5'] = ""; данные['siType'] = ""; данные['siRef'] = ""; данные['siSetupAmount'] = ""; данные['siAmount'] = ""; данные['siStartDate'] = ""; данные['siFreqType'] = ""; данные['siFreq'] = ""; данные['siBillCycle'] = ""; данные['display_address'] = "Y"; окончательный ответ = ожидайте оплаты (данные); print('ОТВЕТ ======>>>>>> $response'); } Future pay(Map data) async { const MethodChannel _channel = MethodChannel('plugin_ccavenue'); return await _channel.invokeMethod('payCCAvenue', data); } Я распечатал все результаты на стороне Android и не получил нулевых значений, все значения будут переданы правильно, и у меня не было проблем с печатью данных
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»