ankidroid / Anki-Android

AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
GNU General Public License v3.0
8.59k stars 2.22k forks source link

[Bug] Syncing error, Attempt to invoke virtual method 'com.ichi2.utils.JSONObject com.ichi2.utils.JSONObject.put(java.lang.String, int)' on a null object reference #8094

Closed xangelix closed 3 years ago

xangelix commented 3 years ago
Reproduction Steps

Importing the following deck works on desktop but not ankidroid: https://drive.google.com/uc?id=13gUFSAwcU77ZsUP2Zl0GO9dk__0_0G_g (35.9 MB SHA256 f14da61f9b223707fc531aa09690b9579d1fe52c8bad4a72353ed2d217ec2597)

Expected Result

Successfully imports on Anki for desktop Linux.

Actual Result

On mobile the following 'sync error' is received: Syncing error, type: -1, message: Attempt to invoke virtual method 'com.ichi2.utils.JSONObject com.ichi2.utils.JSONObject.put(java.lang.String, int)' on a null object reference

Debug info
AnkiDroid Version = 2.14.3
Android Version = 11
ACRA UUID = d3a5ac64-b0fb-407d-9152-47e37032717d
Scheduler = std
Crash Reports Enabled = true
Research

Enter an [x] character to confirm the points below:

Full logcat output
02-08 13:50:01.018 30154 30154 I AnkiDroid: Sync was successful
02-08 13:50:01.018 30154 30154 I AnkiDroid: Full Download Completed
02-08 13:50:01.030 30154 30576 I AnkiDroid: Begin openCollection: /storage/emulated/0/AnkiDroid/collection.anki2
02-08 13:50:01.034 30154 30576 I AnkiDroid: Opening Collection Log
02-08 13:50:01.045 30154 30576 I AnkiDroid: End openCollection: /storage/emulated/0/AnkiDroid/collection.anki2
02-08 13:50:01.097 30154 30576 E AnkiDroid: CollectionTask/ doInBackgroundLoadDeckCounts - error
02-08 13:50:01.097 30154 30576 E AnkiDroid: java.lang.NullPointerException: Attempt to invoke virtual method 'com.ichi2.utils.JSONObject com.ichi2.utils.JSONObject.put(java.lang.String, int)' on a null object reference
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.libanki.Decks.confForDid(Decks.java:4)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.libanki.sched.SchedV2._deckNewLimitSingle(SchedV2.java:4)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.libanki.sched.Sched.deckDueList(Sched.java:10)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.libanki.sched.SchedV2.deckDueTree(SchedV2.java:2)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.async.CollectionTask.doInBackgroundLoadDeckCounts(CollectionTask.java:3)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.async.CollectionTask.actualDoInBackground(CollectionTask.java:52)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.async.CollectionTask.doInBackground(CollectionTask.java:2)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.async.CollectionTask.doInBackground(CollectionTask.java:1)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at android.os.AsyncTask$3.call(AsyncTask.java:394)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at java.lang.Thread.run(Thread.java:923)
02-08 13:50:01.097 30154 30576 E AnkiDroid: 
02-08 13:50:01.097 30154 30576 E AnkiDroid: java.lang.NullPointerException: Attempt to invoke virtual method 'com.ichi2.utils.JSONObject com.ichi2.utils.JSONObject.put(java.lang.String, int)' on a null object reference
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.libanki.Decks.confForDid(Decks.java:4)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.libanki.sched.SchedV2._deckNewLimitSingle(SchedV2.java:4)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.libanki.sched.Sched.deckDueList(Sched.java:10)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.libanki.sched.SchedV2.deckDueTree(SchedV2.java:2)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.async.CollectionTask.doInBackgroundLoadDeckCounts(CollectionTask.java:3)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.async.CollectionTask.actualDoInBackground(CollectionTask.java:52)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.async.CollectionTask.doInBackground(CollectionTask.java:2)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at com.ichi2.async.CollectionTask.doInBackground(CollectionTask.java:1)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at android.os.AsyncTask$3.call(AsyncTask.java:394)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
02-08 13:50:01.097 30154 30576 E AnkiDroid:     at java.lang.Thread.run(Thread.java:923)
02-08 13:50:01.097 30154 30154 I AnkiDroid: Updating deck list UI
02-08 13:50:01.098 30154 30154 E AnkiDroid: DeckPicker$UpdateDeckListListener/ null result loading deck counts
02-08 13:50:01.104 30154 30154 I AnkiDroid: Handling Message: CollectionLoadErrorDialog
02-08 13:50:01.109 30154 30154 W System.err: java.io.IOException: Cannot run program "sqlite3": error=2, No such file or directory
02-08 13:50:01.109 30154 30154 W System.err:    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050)
02-08 13:50:01.109 30154 30154 W System.err:    at java.lang.Runtime.exec(Runtime.java:699)
02-08 13:50:01.109 30154 30154 W System.err:    at java.lang.Runtime.exec(Runtime.java:529)
02-08 13:50:01.109 30154 30154 W System.err:    at java.lang.Runtime.exec(Runtime.java:426)
02-08 13:50:01.109 30154 30154 W System.err:    at com.ichi2.anki.dialogs.DatabaseErrorDialog.onCreateDialog(DatabaseErrorDialog.java:9)
02-08 13:50:01.109 30154 30154 W System.err:    at com.ichi2.anki.dialogs.DatabaseErrorDialog.onCreateDialog(DatabaseErrorDialog.java:1)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.DialogFragment.onGetLayoutInflater(DialogFragment.java:4)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.Fragment.performGetLayoutInflater(Fragment.java:1)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:13)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:25)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:69)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:4)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:75)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:28)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:6)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:14)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:10)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:4)
02-08 13:50:01.109 30154 30154 W System.err:    at androidx.fragment.app.FragmentManager.executePendingTransactions(FragmentManager.java:1)
02-08 13:50:01.109 30154 30154 W System.err:    at com.ichi2.anki.AnkiActivity.showDialogFragment(AnkiActivity.java:8)
02-08 13:50:01.109 30154 30154 W System.err:    at com.ichi2.anki.AnkiActivity.showDialogFragment(AnkiActivity.java:1)
02-08 13:50:01.109 30154 30154 W System.err:    at com.ichi2.anki.AnkiActivity.showAsyncDialogFragment(AnkiActivity.java:2)
02-08 13:50:01.109 30154 30154 W System.err:    at com.ichi2.anki.AnkiActivity.showAsyncDialogFragment(AnkiActivity.java:1)
02-08 13:50:01.109 30154 30154 W System.err:    at com.ichi2.anki.DeckPicker.showDatabaseErrorDialog(DeckPicker.java:2)
02-08 13:50:01.109 30154 30154 W System.err:    at com.ichi2.anki.dialogs.DialogHandler.handleMessage(DialogHandler.java:6)
02-08 13:50:01.109 30154 30154 W System.err:    at android.os.Handler.dispatchMessage(Handler.java:106)
02-08 13:50:01.109 30154 30154 W System.err:    at android.os.Looper.loop(Looper.java:223)
02-08 13:50:01.109 30154 30154 W System.err:    at android.app.ActivityThread.main(ActivityThread.java:7656)
02-08 13:50:01.109 30154 30154 W System.err:    at java.lang.reflect.Method.invoke(Native Method)
02-08 13:50:01.109 30154 30154 W System.err:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
02-08 13:50:01.109 30154 30154 W System.err:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
02-08 13:50:01.109 30154 30154 W System.err: Caused by: java.io.IOException: error=2, No such file or directory
02-08 13:50:01.109 30154 30154 W System.err:    at java.lang.UNIXProcess.forkAndExec(Native Method)
02-08 13:50:01.109 30154 30154 W System.err:    at java.lang.UNIXProcess.<init>(UNIXProcess.java:133)
02-08 13:50:01.109 30154 30154 W System.err:    at java.lang.ProcessImpl.start(ProcessImpl.java:141)
02-08 13:50:01.109 30154 30154 W System.err:    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
02-08 13:50:01.109 30154 30154 W System.err:    ... 30 more
welcome[bot] commented 3 years ago

Hello! 👋 Thanks for logging this issue. Please remember we are all volunteers here, so some patience may be required before we can get to the issue. Also remember that the fastest way to get resolution on an issue is to propose a change directly, https://github.com/ankidroid/Anki-Android/wiki/Contributing

mrudultora commented 3 years ago

@xangelix Do you face such issues frequently? Or, this happened first time with you.

xangelix commented 3 years ago

This is the first and only time it has happened for me.

github-actions[bot] commented 3 years ago

Hello 👋, this issue has been opened for more than 2 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like still searching for solutions and if you found one, please open a pull request! You have 7 days until this gets closed automatically

TunnelThruTime commented 2 years ago

I've come across this same problem using ankidroid on android 11. I was importing decks I've created using ankdown with md files.