AndreAle94/moneywallet

App keeps on stopping

Opened this issue · 6 comments

The app worked fine for some time and suddenly it can't be opened and everyone getting error that it's getting stopped. What might be the error?
Screenshot_20220601-105336

I wanted to use this app and I try the backup services that are a key feature for me. I got the same error.

Same issue here. And I don't have a fresh backup, so it's kinda urgent for me.

MoneyWallet version: 4.0.5.15 (from F-Droid)
Android version: 12 (LOS 19.1)

Logcat:

<<< log_count = 17 >>>
[09-05 07:27:20.533 1139:1139 E/dev.moneywalle]
Not starting debugger since process cannot load the jdwp agent.

[09-05 07:27:20.534 1139:1139 D/ProcessState]
Binder ioctl to enable oneway spam detection failed: Invalid argument

[09-05 07:27:20.567 1139:1139 D/CompatibilityChangeReporter]
Compat change id reported: 171979766; UID 10144; state: DISABLED

[09-05 07:27:20.577 1139:1139 D/ApplicationLoaders]
Returning zygote-cached class loader: /system/framework/android.test.base.jar

[09-05 07:27:20.613 1139:1139 V/GraphicsEnvironment]
ANGLE Developer option for 'com.oriondev.moneywallet' set to: 'default'

[09-05 07:27:20.615 1139:1139 V/GraphicsEnvironment]
ANGLE GameManagerService for com.oriondev.moneywallet: false

[09-05 07:27:20.615 1139:1139 V/GraphicsEnvironment]
Neither updatable production driver nor prerelease driver is supported.

[09-05 07:27:20.617 1139:1139 D/NetworkSecurityConfig]
No Network Security Config specified, using platform default

[09-05 07:27:20.618 1139:1139 D/NetworkSecurityConfig]
No Network Security Config specified, using platform default

[09-05 07:27:20.618 1139:1139 I/MultiDex]
VM with version 2.1.0 has multidex support

[09-05 07:27:20.618 1139:1139 I/MultiDex]
Installing application

[09-05 07:27:20.618 1139:1139 I/MultiDex]
VM has multidex support, MultiDex support library is disabled.

[09-05 07:27:20.659 1139:1139 D/CompatibilityChangeReporter]
Compat change id reported: 160794467; UID 10144; state: DISABLED

[09-05 07:27:20.684 1139:1139 I/System.out]
[ALARM] AutoBackupTask fired now

[09-05 07:27:20.685 1139:1139 D/AndroidRuntime]
Shutting down VM

[09-05 07:27:20.686 1139:1139 E/AndroidRuntime]
FATAL EXCEPTION: main
Process: com.oriondev.moneywallet, PID: 1139
java.lang.RuntimeException: Unable to create application com.oriondev.moneywallet.App: java.lang.RuntimeException: Cannot decode file from string: Expected literal value at character 0 of /storage/emulated/0
	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6767)
	at android.app.ActivityThread.access$1500(ActivityThread.java:256)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2091)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.app.ActivityThread.main(ActivityThread.java:7870)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Caused by: java.lang.RuntimeException: Cannot decode file from string: Expected literal value at character 0 of /storage/emulated/0
	at com.oriondev.moneywallet.model.SAFFile.<init>(SAFFile.java:47)
	at com.oriondev.moneywallet.api.BackendServiceFactory.getFile(BackendServiceFactory.java:82)
	at com.oriondev.moneywallet.broadcast.AutoBackupBroadcastReceiver.startBackgroundTask(AutoBackupBroadcastReceiver.java:105)
	at com.oriondev.moneywallet.broadcast.AutoBackupBroadcastReceiver.scheduleAutoBackupTask(AutoBackupBroadcastReceiver.java:59)
	at com.oriondev.moneywallet.App.initializeScheduledTimers(App.java:60)
	at com.oriondev.moneywallet.App.onCreate(App.java:51)
	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1223)
	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6762)
	... 9 more

[09-05 07:27:20.716 1139:1139 I/Process]
Sending signal. PID: 1139 SIG: 9

@AndreAle94 would you prioritize this bug fix, please?

Hi all, the issue reported by @tamas646 seems related to the current implementation of SAF (Storage Access Framework) backend that needs a rework. I don't see any logs attached by @harishbewe but it could be the same issue if the app crashes immediately as soon as you open it. Unfortunately, I don't have time to look into this and work on a fix, but I think it could be a good task in case someone would like to become familiar with the code @(Mattrazol).

As a quick workaround, in case your device is rooted, you could disable the auto-backup feature manually in /data/data/com.oriondev.moneywallet/shared_prefs/backend_preferences.xml as follow:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
  [...]
  <set name="auto_backup_enabled_services">
    <string>storage_access_framework</string> <-- remove this line
    [...]
  </set>
  [...]
</map>

As a quick workaround, in case your device is rooted, you could disable the auto-backup feature manually in /data/data/com.oriondev.moneywallet/shared_prefs/backend_preferences.xml as follow:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
  [...]
  <set name="auto_backup_enabled_services">
    <string>storage_access_framework</string> <-- remove this line
    [...]
  </set>
  [...]
</map>

That worked. Thank's a lot. 🥳

For anyone else running into this problem without a rooted Android device - I was able to edit the above-mentioned configuration file using AndroidBackupExtractor, following these steps:

  1. adb backup -f backup.ab com.oriondev.moneywallet
  2. java -jar abe.jar unpack backup.ab backup.tar
  3. tar tf backup.tar > package.list
  4. edit the file apps/com.oriondev.moneywallet/sp/backend_preferences.xml as suggested above
  5. tar cf restore.tar -T package.list
  6. java -jar abe.jar pack restore.tar restore.ab
  7. adb restore restore.ab