khalti / khalti-sdk-android Goto Github PK
View Code? Open in Web Editor NEWSDK for Khalti Android App
SDK for Khalti Android App
Hey Developer,
You should decrease the library size at first. And You should use latest version of Picasso.
Regards
After integrating sdk in the project build fails with following error
/Users/amar/.gradle/caches/transforms-2/files-2.1/5b02e9fabdc6d3f8a2b35986c0906017/jetified-khalti-android/res/values/values.xml:144:5-154:25: AAPT: error: duplicate value for resource 'attr/button_style' with config ''.
it points to this resource
Whats the meaning of making the project open source when I can't even test your testClasses.
khalti-android/src/main/java/khalti/checkOut/EBanking/EBankingPresenter.java
khalti-android/src/main/java/khalti/checkOut/Wallet/WalletPresenter.java
khalti-android/src/main/java/khalti/checkOut/api/ApiHelper.java
Constants.url is missing and which is for sure "https://khalti.com/" as I assume..
Looking for better sdk ahead
Congratulation as well !!
The onSuccess
call never fires if we pay from cIPS. At the end of the wizard process once the payment is successful we receive Go To App
button but that never redirects. Even worst is that, the transaction made through cIPS is automatically marked as completed without our verification call from the server. This is causing a mess to maintain the transaction records.
Can you please make SMS permission optional on the SDK. Since, SMS permission on SDK is mainly required for the auto read of the SMS? More detail her: https://support.google.com/googleplay/android-developer/answer/9047303
Values set in config is not checked if KhaltiButton is not used. Set validation in KhaltiCheckOut
this issue arises when building the app, conflict with aws amplify library
compileSdkVersion 29 buildToolsVersion "29.0.1" defaultConfig { applicationId "com.thesunbi.nepmeds" minSdkVersion 21 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true }
Gradle Dependencies
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.core:core-ktx:1.1.0' implementation 'com.google.android.material:material:1.1.0-alpha10' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.vectordrawable:vectordrawable:1.1.0' implementation 'androidx.navigation:navigation-fragment:2.2.0-alpha02' implementation 'androidx.navigation:navigation-ui:2.2.0-alpha02' implementation 'androidx.navigation:navigation-fragment-ktx:2.2.0-alpha02' implementation 'androidx.navigation:navigation-ui-ktx:2.2.0-alpha02' implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha04' implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha04' implementation ('com.khalti:khalti-android:1.2.8')
Gradle.properties
kotlin.code.style=official android.enableJetifier=true org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" android.useAndroidX=true android.enableR8 = false
Crash Log
2019-09-16 16:52:57.256 23024-23024/com.thesunbi.nepmeds E/InputEventReceiver: Exception dispatching input event. 2019-09-16 16:52:57.257 23024-23024/com.thesunbi.nepmeds E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback 2019-09-16 16:52:57.260 23024-23024/com.thesunbi.nepmeds E/MessageQueue-JNI: java.lang.IncompatibleClassChangeError: Class 'khalti.checkOut.CheckOutActivity$1' does not implement interface 'com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener' in call to 'void com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener.onTabUnselected(com.google.android.material.tabs.TabLayout$Tab)' (declaration of 'com.google.android.material.tabs.TabLayout$1' appears in /data/app/com.thesunbi.nepmeds-Qdq0rC66qqCNuKcVsJ0AOg==/base.apk) at com.google.android.material.tabs.TabLayout$1.onTabUnselected(TabLayout.java:826) at com.google.android.material.tabs.TabLayout.dispatchTabUnselected(TabLayout.java:1799) at com.google.android.material.tabs.TabLayout.selectTab(TabLayout.java:1783) at com.google.android.material.tabs.TabLayout$TabLayoutOnPageChangeListener.onPageSelected(TabLayout.java:3256) at androidx.viewpager.widget.ViewPager.dispatchOnPageSelected(ViewPager.java:1947) at androidx.viewpager.widget.ViewPager.scrollToItem(ViewPager.java:686) at androidx.viewpager.widget.ViewPager.setCurrentItemInternal(ViewPager.java:670) at androidx.viewpager.widget.ViewPager.onTouchEvent(ViewPager.java:2263) at android.view.View.dispatchTouchEvent(View.java:12593) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3028) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2705) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:441) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1850) at android.app.Activity.dispatchTouchEvent(Activity.java:3413) at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69) at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:399) at android.view.View.dispatchPointerEvent(View.java:12832) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5667) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5193) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4673) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4726) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4692) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4832) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4700) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4889) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4673) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4726) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4692) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4700) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4673) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7697) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7666) at android.view.ViewRootImpl.enqueueInputE 2019-09-16 16:52:57.260 23024-23024/com.thesunbi.nepmeds D/AndroidRuntime: Shutting down VM 2019-09-16 14:56:56.586 20947-20947/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.thesunbi.nepmeds, PID: 20947 java.lang.IncompatibleClassChangeError: Class 'khalti.checkOut.CheckOutActivity$1' does not implement interface 'com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener' in call to 'void com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener.onTabUnselected(com.google.android.material.tabs.TabLayout$Tab)' (declaration of 'com.google.android.material.tabs.TabLayout$1' appears in /data/app/com.thesunbi.nepmeds-0cPfwgSeIU9sRJVd4k6kBA==/base.apk) at com.google.android.material.tabs.TabLayout$1.onTabUnselected(TabLayout.java:826) at com.google.android.material.tabs.TabLayout.dispatchTabUnselected(TabLayout.java:1799) at com.google.android.material.tabs.TabLayout.selectTab(TabLayout.java:1783) at com.google.android.material.tabs.TabLayout.selectTab(TabLayout.java:1746) at com.google.android.material.tabs.TabLayout$Tab.select(TabLayout.java:2139) at com.google.android.material.tabs.TabLayout$TabView.performClick(TabLayout.java:2327) at android.view.View.performClickInternal(View.java:6638) at android.view.View.access$3100(View.java:789) at android.view.View$PerformClick.run(View.java:26145) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6898) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 2019-09-16 16:52:57.263 23024-23024/com.thesunbi.nepmeds E/AndroidRuntime: FATAL EXCEPTION: main Process: com.thesunbi.nepmeds, PID: 23024 java.lang.IncompatibleClassChangeError: Class 'khalti.checkOut.CheckOutActivity$1' does not implement interface 'com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener' in call to 'void com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener.onTabUnselected(com.google.android.material.tabs.TabLayout$Tab)' (declaration of 'com.google.android.material.tabs.TabLayout$1' appears in /data/app/com.thesunbi.nepmeds-Qdq0rC66qqCNuKcVsJ0AOg==/base.apk) at com.google.android.material.tabs.TabLayout$1.onTabUnselected(TabLayout.java:826) at com.google.android.material.tabs.TabLayout.dispatchTabUnselected(TabLayout.java:1799) at com.google.android.material.tabs.TabLayout.selectTab(TabLayout.java:1783) at com.google.android.material.tabs.TabLayout$TabLayoutOnPageChangeListener.onPageSelected(TabLayout.java:3256) at androidx.viewpager.widget.ViewPager.dispatchOnPageSelected(ViewPager.java:1947) at androidx.viewpager.widget.ViewPager.scrollToItem(ViewPager.java:686) at androidx.viewpager.widget.ViewPager.setCurrentItemInternal(ViewPager.java:670) at androidx.viewpager.widget.ViewPager.onTouchEvent(ViewPager.java:2263) at android.view.View.dispatchTouchEvent(View.java:12593) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3028) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2705) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:441) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1850) at android.app.Activity.dispatchTouchEvent(Activity.java:3413) at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69) at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:399) at android.view.View.dispatchPointerEvent(View.java:12832) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5667) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5193) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4673) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4726) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4692) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4832) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4700) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4889) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4673) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4726) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4692) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4700) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4673) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7697) 2019-09-16 16:52:57.263 23024-23024/com.thesunbi.nepmeds E/AndroidRuntime: at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7666) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7599) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7800) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:187) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:326) at android.os.Looper.loop(Looper.java:160) at android.app.ActivityThread.main(ActivityThread.java:6898) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 2019-09-16 16:52:57.265 23024-23024/com.thesunbi.nepmeds E/AndroidRuntime: FATAL EXCEPTION: main Process: com.thesunbi.nepmeds, PID: 23024 java.lang.IncompatibleClassChangeError: Class 'khalti.checkOut.CheckOutActivity$1' does not implement interface 'com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener' in call to 'void com.google.android.material.tabs.TabLayout$BaseOnTabSelectedListener.onTabUnselected(com.google.android.material.tabs.TabLayout$Tab)' (declaration of 'com.google.android.material.tabs.TabLayout$1' appears in /data/app/com.thesunbi.nepmeds-Qdq0rC66qqCNuKcVsJ0AOg==/base.apk) at com.google.android.material.tabs.TabLayout$1.onTabUnselected(TabLayout.java:826) at com.google.android.material.tabs.TabLayout.dispatchTabUnselected(TabLayout.java:1799) at com.google.android.material.tabs.TabLayout.selectTab(TabLayout.java:1783) at com.google.android.material.tabs.TabLayout$TabLayoutOnPageChangeListener.onPageSelected(TabLayout.java:3256) at androidx.viewpager.widget.ViewPager.dispatchOnPageSelected(ViewPager.java:1947) at androidx.viewpager.widget.ViewPager.scrollToItem(ViewPager.java:686) at androidx.viewpager.widget.ViewPager.setCurrentItemInternal(ViewPager.java:670) at androidx.viewpager.widget.ViewPager.onTouchEvent(ViewPager.java:2263) at android.view.View.dispatchTouchEvent(View.java:12593) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3028) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2705) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3034) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719) at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:441) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1850) at android.app.Activity.dispatchTouchEvent(Activity.java:3413) at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69) at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:399) at android.view.View.dispatchPointerEvent(View.java:12832) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5667) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5193) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4673) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4726) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4692) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4832) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4700) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4889) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4673) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4726) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4692) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4700) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4673) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7697) 2019-09-16 16:52:57.266 23024-23024/com.thesunbi.nepmeds E/AndroidRuntime: at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7666) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7599) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7800) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:187) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:326) at android.os.Looper.loop(Looper.java:160) at android.app.ActivityThread.main(ActivityThread.java:6898) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
FATAL
FATAL EXCEPTION: RxNewThreadScheduler-7
java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java)
at java.lang.Thread.run(Thread.java)
Caused by: java.lang.NoSuchMethodError: No virtual method log(Ljava/lang/String;)V in class Lokhttp3/internal/Platform; or its super classes (declaration of 'okhttp3.internal.Platform' appears in /data/app/com.frantic.kicksal-2/base.apk:classes5.dex)
at okhttp3.logging.HttpLoggingInterceptor$Logger$1.log(HttpLoggingInterceptor.java:108)
at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:157)
at okhttp3.RealCall$ApplicationInterceptorChain.proceed(RealCall.java:190)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:163)
at okhttp3.RealCall.execute(RealCall.java:57)
at retrofit2.OkHttpCall.execute(OkHttpCall.java:174)
at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$RequestArbiter.request(RxJavaCallAdapterFactory.java:171)
at rx.internal.operators.OperatorSubscribeOn$1$1$1.request(OperatorSubscribeOn.java:80)
at rx.Subscriber.setProducer(Subscriber.java:211)
at rx.internal.operators.OperatorSubscribeOn$1$1.setProducer(OperatorSubscribeOn.java:76)
at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:152)
at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:138)
at rx.Observable.unsafeSubscribe(Observable.java:8666)
at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94)
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java)
at java.lang.Thread.run(Thread.java)
Is there any plans to migrate the SDK to android x? As the world is moving fast towards androidx.
java.lang.NoSuchFieldError: No static field flProgress of type I in class Lcom/khalti/R$id; or its superclasses (declaration of 'com.khalti.R$id' appears in /data/app/com.app.vianet-25MVUnyLsz_YpBijZYnvQA==/base.apk!classes2.dex)
We can't disable R8 in gradle version newer than 7.0. So, it is causing conflict with other dependencies because some of them also have obfuscated a.a(a.b / whatever) class which this library also has. The build logs is as ### follows:
Duplicate class a.a found in modules jetified-eSewaSdk-runtime (eSewaSdk.aar) and jetified-khalti-android-2.01.02-runtime (com.khalti:khalti-android:2.01.02)
Duplicate class b.a found in modules jetified-eSewaSdk-runtime (eSewaSdk.aar) and jetified-khalti-android-2.01.02-runtime (com.khalti:khalti-android:2.01.02)
Duplicate class b.b found in modules jetified-eSewaSdk-runtime (eSewaSdk.aar) and jetified-khalti-android-2.01.02-runtime (com.khalti:khalti-android:2.01.02)
Duplicate class b.c found in modules jetified-eSewaSdk-runtime (eSewaSdk.aar) and jetified-khalti-android-2.01.02-runtime (com.khalti:khalti-android:2.01.02)
Duplicate class c.a found in modules jetified-eSewaSdk-runtime (eSewaSdk.aar) and jetified-khalti-android-2.01.02-runtime (com.khalti:khalti-android:2.01.02)
Solution: as discussed here, please use flattenpackagehierarchy
in your ProGuard rules to move obfuscated classes in some unique package to prevent aforementioned conflicts with other libraries.
According to the documentation I should be able to get mobile on success json but it's not there. It's showing on the Http Response but not on the success hashmap. Is it for security purpose or did you forget to add it on hashmap??
I have followed all the steps.
Including Khalti SDK show the problem of carbonX and Shadow problem!
I was using version 1.02.18
khalti sdk version. Now when I tried rebuild my android project
I am getting this error. Has this version been removed from khalti repo or is it some issue in my side? Please explain.
RROR: Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.khalti:khalti-android:1.02.18.
When trying to call the init
method of Khalti, I get cannot find symbol
error.
KhaltiPayConfig config = new KhaltiPayConfig(
"public_key",
"pidx_from_epayment_initiate",
true,
Environment.TEST
);
Khalti.init(ctx, config,
// on payment result
(paymentResult, khalti) -> {
Log.d("khalti", "On payment result");
},
// on message
(payload, khalti) -> {
Log.d("khalti", "On message");
},
// on return
(khalti) -> {
Log.d("khalti", "On return");
}
);
Reading the Kotlin doc for calling Kotlin static methods from java, @JvmStatic
is required.
Link to the doc.
i am getting following error while run my Project
Process: com.impactit.demokhaltiintegration, PID: 16796
java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:114)
at android.os.Handler.handleCallback(Handler.java:742)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5653)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:746)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
Caused by: java.lang.NoSuchMethodError: No virtual method addOnTabSelectedListener(Landroid/support/design/widget/TabLayout$OnTabSelectedListener;)V in class Landroid/support/design/widget/TabLayout; or its super classes (declaration of 'android.support.design.widget.TabLayout' appears in /data/app/com.impactit.demokhaltiintegration-2/split_lib_dependencies_apk.apk)
at khalti.checkOut.CheckOutActivity.c(Unknown Source)
at khalti.checkOut.d$1.a(Unknown Source)
at khalti.checkOut.d$1.onNext(Unknown Source)
at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134)
at rx.subjects.PublishSubject$PublishSubjectProducer.onNext(PublishSubject.java:304)
at rx.subjects.PublishSubject$PublishSubjectState.onNext(PublishSubject.java:219)
at rx.subjects.PublishSubject.onNext(PublishSubject.java:72)
at khalti.checkOut.b$1.a(Unknown Source)
at khalti.checkOut.b$1.onNext(Unknown Source)
at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134)
at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:77)
at rx.subjects.PublishSubject$PublishSubjectProducer.onNext(PublishSubject.java:304)
at rx.subjects.PublishSubject$PublishSubjectState.onNext(PublishSubject.java:219)
at rx.subjects.PublishSubject.onNext(PublishSubject.java:72)
at khalti.checkOut.api.a$1.a(Unknown Source)
at khalti.checkOut.api.a$1.onNext(Unknown Source)
at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:224)
at rx.android.schedulers.LooperScheduler$ScheduledAction.run(LooperScheduler.java:107)
at android.os.Handler.handleCallback(Handler.java:742)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5653)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:746)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
11-27 14:18:22.487 2924-2924/? E/Icon: Unable to load resource 0x00000000 from pkg=com.android.systemui
android.content.res.Resources$NotFoundException: Resource ID #0x0
at android.content.res.Resources.getValue(Resources.java:1369)
at android.content.res.MiuiResources.getValue(MiuiResources.java:146)
at android.content.res.Resources.getDrawable(Resources.java:822)
at android.graphics.drawable.Icon.loadDrawableInner(Icon.java:313)
at android.graphics.drawable.Icon.loadDrawable(Icon.java:269)
at android.graphics.drawable.Icon.loadDrawableAsUser(Icon.java:377)
at com.android.systemui.statusbar.ExpandedIcon.getDrawable(ExpandedIcon.java:59)
at com.android.systemui.statusbar.StatusBarIconView.getIcon(StatusBarIconView.java:179)
at com.android.systemui.statusbar.StatusBarIconView.setIcon(StatusBarIconView.java:136)
at com.android.systemui.statusbar.StatusBarIconView.updateDarkMode(StatusBarIconView.java:271)
at com.android.systemui.statusbar.phone.SimpleStatusBar.updateDarkMode(SimpleStatusBar.java:275)
at com.android.systemui.statusbar.phone.PhoneStatusBar$42.run(PhoneStatusBar.java:3872)
at android.os.Handler.handleCallback(Handler.java:742)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5653)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:746)
for more detail please check my code if possible
https://github.com/stharzun/KhaltiDemo
java.lang.NoSuchFieldError: khalti.R$id.flProgress (1.2.5)
After successful response from :
https://khalti.com/api/bank/?has_ebanking=true&page=1&page_size=100
app is crashing with following error log:
java.lang.NoSuchMethodError: No static method with(Landroid/content/Context;)Lcom/squareup/picasso/Picasso; in class Lcom/squareup/picasso/Picasso; or its super classes (declaration of 'com.squareup.picasso.Picasso' appears in /data/app/com.rakezb.ecommerce-NmD1WUkxgDTpNe-lz0hGfg==/base.apk!classes3.dex) at khalti.checkOut.EBanking.helper.a.a(Unknown Source:122) at khalti.checkOut.EBanking.helper.a.onBindViewHolder(Unknown Source:2) at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6781) at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6823) at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5752) at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6019) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854) at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2230) at androidx.recyclerview.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:557) at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517) at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612) at androidx.recyclerview.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:171) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924) at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3641) at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4194) at android.view.View.layout(View.java:20865) at android.view.ViewGroup.layout(ViewGroup.java:6215) at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:142) at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:41) at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1556) at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:888) at android.view.View.layout(View.java:20865)
I am using andoridX 1.0.2
Caused by: java.lang.RuntimeException: Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.7.0-runtime (androidx.core:core:1.7.0) and support-compat-25.3.1-runtime (com.android.support:support-compat:25.3.1)
java.lang.IncompatibleClassChangeError: Superclass rx.Observable of rx.subjects.Subject is declared final (declaration of 'rx.subjects.Subject' appears in /data/app/com.koklass.order-LGXhpHNLtt9lt3Q3J7CUQw==/base.apk:classes7.dex)
at khalti.checkOut.d.(Unknown Source:14)
at khalti.checkOut.CheckOutActivity.onCreate(Unknown Source:110)
at android.app.Activity.performCreate(Activity.java:7003)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1230)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2899)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3046)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6798)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
I am using jetpack compose for UI in new app disabling R8 will performance in jetpack ui. Are we still need to disable that R8
Khalti SDK is not working with build version 28 or more. This is bad practice to downgrade build tool version so that will you please update your build tool to 28 or more.
The industry-standard approach to add a 3rd party system which need some redirect is to have 3 callbacks, success, failed, cancelled. But this SDK lacks cancelled, without the ability to know whethere the sdk tried to make the payment, we are not able to optimize out sales accordingly.
Will it be a possibility from the team to add such a feature?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.