View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0009056 | Taler | wallet (Android App) | public | 2024-08-12 00:29 | 2024-08-28 23:30 |
Reporter | Florian Dold | Assigned To | avalos | ||
Priority | immediate | Severity | crash | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Target Version | 0.13 | Fixed in Version | 0.13 | ||
Summary | 0009056: Android Wallet App crashes with NPE | ||||
Description | See logs. | ||||
Additional Information | 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: FATAL EXCEPTION: main 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: Process: net.taler.wallet.fdroid, PID: 26356 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {net.taler.wallet.fdroid/net.taler.wallet.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.UserHandle.getIdentifier()' on a null object reference 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:5244) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:5277) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:57) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:60) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeLifecycleItem(TransactionExecutor.java:282) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:150) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:93) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2595) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:232) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.os.Looper.loop(Looper.java:317) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8592) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.UserHandle.getIdentifier()' on a null object reference 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.os.Parcel.createExceptionOrNull(Parcel.java:3189) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:3167) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:3150) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:3092) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.nfc.INfcCardEmulation$Stub$Proxy.setPreferredService(INfcCardEmulation.java:745) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.nfc.cardemulation.CardEmulation.setPreferredService(CardEmulation.java:674) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at net.taler.wallet.MainActivity.onResume(SourceFile:35) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1722) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.Activity.performResume(Activity.java:9118) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:5234) 08-10 16:19:48.194 10285 26356 26356 E AndroidRuntime: ... 14 more 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: FATAL EXCEPTION: main 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: Process: net.taler.wallet.fdroid, PID: 26385 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {net.taler.wallet.fdroid/net.taler.wallet.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.UserHandle.getIdentifier()' on a null object reference 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:5244) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:5277) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:57) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:60) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeLifecycleItem(TransactionExecutor.java:282) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:150) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:93) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2595) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:232) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.os.Looper.loop(Looper.java:317) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8592) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.UserHandle.getIdentifier()' on a null object reference 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.os.Parcel.createExceptionOrNull(Parcel.java:3189) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:3167) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:3150) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:3092) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.nfc.INfcCardEmulation$Stub$Proxy.setPreferredService(INfcCardEmulation.java:745) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.nfc.cardemulation.CardEmulation.setPreferredService(CardEmulation.java:674) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at net.taler.wallet.MainActivity.onResume(SourceFile:35) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1722) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.Activity.performResume(Activity.java:9118) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:5234) 08-10 16:19:49.366 10285 26385 26385 E AndroidRuntime: ... 14 more | ||||
Tags | No tags attached. | ||||
|
Fixed in commit d55c19fb3983df64675ada5c41b72daca9758d01, please try the latest nightly APK from wallet.taler.net, and feel free to reopen this should the issue persist. Turns out that the NFC service was trying to set itself as the default NFC handler during runtime, but was unable to resolve its own package name. I have been unable to reproduce it, but in theory, it should be fixed now, with the catch that users will need to choose the current app from a list (if multiple wallets, the PoS and the cashier apps are installed) when scanning an NFC tag or another phone transmitting a payment (only) in the specific cases where it would have otherwise crashed. |
Date Modified | Username | Field | Change |
---|---|---|---|
2024-08-12 00:29 | Florian Dold | New Issue | |
2024-08-12 00:29 | Florian Dold | Status | new => assigned |
2024-08-12 00:29 | Florian Dold | Assigned To | => avalos |
2024-08-15 06:59 | avalos | Note Added: 0022981 | |
2024-08-15 07:00 | avalos | Status | assigned => resolved |
2024-08-15 07:00 | avalos | Resolution | open => fixed |
2024-08-26 22:29 | Christian Grothoff | Fixed in Version | => 0.13 |
2024-08-28 23:30 | Christian Grothoff | Status | resolved => closed |