keepass2android icon indicating copy to clipboard operation
keepass2android copied to clipboard

The name must not be empty: null" when accessing google drive

Open Tuteksik opened this issue 3 years ago • 6 comments

Hi, android 13 google picel, new installation of Keepass2AAndroid when try to locate database on Google Drive I get this error at the bottom: The name must not be empty: null" Clearing cache, or even all app memory do not help, even reinstallation. Please help.

Tuteksik avatar Sep 27 '22 09:09 Tuteksik

I also confirm this issue ! After removing and re-adding my Google Account from my Smartphone I got this error. I assumed a "caching issue" and revoked the permissions of Keepass2Android from https://myaccount.google.com/permissions The next time, I started Keepass2Android I was asked to give KeePass2Android the permissions to access Google drive (which I did) but I ended up in "The name must not be empty:null" error.

After clearing the App-Data on the smartphone I was able to setup the connectivity again, but whenever I updated the file on google drive and tried to re-sync I got a message stating, that "my account has not been properly initialized".

So finally I came up with the following approach, that worked (at least partially).

  1. Remove Keepass2Androids Permissions in your account https://myaccount.google.com/permissions
  2. Use your android App-Manager to clear all (local) application Data on the device
  3. Start KeePass2Android again, and re configure

Step 3 seems to have a "glitch" : first time you do it, you will get the general permissions dialog to re-create the connection you deleted in Step 1, but you wont see your google drive account. If you open the database again, you will not see the "grant permissions" dialogue but the account to choose and then you will see your files and be able to select the database.

If you try to sync a changed database from within KeePass2Android you will get a notification that it was changed and then the error, that it looks like your account has not been properly initialized. But: if you wait a little you will get the known dialogue "local copy of your db will be synced with google drive" and then you will have the current version.

Maybe Philipp can have a look at that. It's far more easy to reproduce if you just remove your google account from "accounts" and re-add it instead of resetting the whole device ! ;-)

schlaubstar avatar Oct 07 '22 10:10 schlaubstar

I initially got the same error once I transferred my data and apps from my old phone running Android 12 to my new phone running Android 13. But, existing out of the app and relaunching it resolved the issue. I've not seen this error ever since.

Spiralpine avatar Dec 06 '22 13:12 Spiralpine

@schlaubstar That worked for me, except the first time I tried to open the file again, I got the crash below after the account chooser, the second time I got through normally.

FATAL EXCEPTION: main
Process: keepass2android.keepass2android, PID: 5206
android.runtime.JavaProxyThrowable: System.ArgumentNullException: Value cannot be null.
Parameter name: value
  at KeePassLib.Serialization.IOConnectionInfo.set_Path (System.String value) [0x00003] in <82b7cea8fdcf40cfa65ac6021b6fc70e>:0 
  at keepass2android.Util.SetIoConnectionFromIntent (KeePassLib.Serialization.IOConnectionInfo ioc, Android.Content.Intent i, System.String prefix) [0x00012] in <dabeaecbf9c0465bb1ce8a7bcc561766>:0 
  at keepass2android.SelectStorageLocationActivity.SetIoConnectionFromIntent (KeePassLib.Serialization.IOConnectionInfo ioc, Android.Content.Intent data) [0x00000] in <dabeaecbf9c0465bb1ce8a7bcc561766>:0 
  at keepass2android.SelectStorageLocationActivityBase.OnActivityResult (System.Int32 requestCode, Android.App.Result resultCode, Android.Content.Intent data) [0x000ca] in <4387dcce18dd490eadd43a838bbc0f3d>:0 
  at keepass2android.SelectStorageLocationActivity.OnActivityResult (System.Int32 requestCode, Android.App.Result resultCode, Android.Content.Intent data) [0x0000a] in <dabeaecbf9c0465bb1ce8a7bcc561766>:0 
  at Android.App.Activity.n_OnActivityResult_IILandroid_content_Intent_ (System.IntPtr jnienv, System.IntPtr native__this, System.Int32 requestCode, System.Int32 native_resultCode, System.IntPtr native_data) [0x00012] in <f14734ebc98e4416a8b2fbf77ffc79bb>:0 
  at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPIIL_V (_JniMarshal_PPIIL_V callback, System.IntPtr jnienv, System.IntPtr klazz, System.Int32 p0, System.Int32 p1, System.IntPtr p2) [0x00005] in <f14734ebc98e4416a8b2fbf77ffc79bb>:0 
 at crc64dd09b2a2e58bb27d.SelectStorageLocationActivity.n_onActivityResult(Native Method)
 at crc64dd09b2a2e58bb27d.SelectStorageLocationActivity.onActivityResult(SelectStorageLocationActivity.java:59)
 at android.app.Activity.dispatchActivityResult(Activity.java:8388)
 at android.app.ActivityThread.deliverResults(ActivityThread.java:5361)
 at android.app.ActivityThread.handleSendResult(ActivityThread.java:5407)
 at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:67)
 at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
 at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
 at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2253)
 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)

Fabian42 avatar Feb 09 '24 22:02 Fabian42