PhilippC / keepass2android

Password manager app for Android
https://play.google.com/store/apps/details?id=keepass2android.keepass2android
GNU General Public License v3.0
4.7k stars 378 forks source link

Database sync fails since ver. 1.05d #417

Open bg777 opened 6 years ago

bg777 commented 6 years ago

Since the new version (1.05d) the database sync fails (on start of a database or later from menu). Database is on the Google drive. Error overlay "the name must not be empty: null" is displayed.

Annubis13 commented 6 years ago

Having the same issue.

kRush- commented 6 years ago

Same here.

PhilippC commented 6 years ago

this is an issue of permissions. Please go to Android settings / Apps / Keepass2Android / Permissions and make sure both "Contacts" (to query to the Google Accounts for GDrive) and Storage permissions (newly required) is active.

kRush- commented 6 years ago

Both were active, but toggling solved the issue.

sanatsathaye commented 6 years ago

@PhilippC Hello, I'd mailed you earlier in the day about this same issue and you told me to re-toggle the settings. The app starting working on its own without me changing anything. I updated the app on another device and it's giving me the same error. Re-toggling has made it work, but before that I took a log of the app just in case it helps:

18-06-2018 12:26:12:201 -- PasswordActivity.OnPause
18-06-2018 12:26:12:846 -- PasswordActivity.OnStop
18-06-2018 12:26:12:848 -- PasswordActivity.OnDestroyTrue
18-06-2018 12:26:14:5 -- KeePass.OnCreate
18-06-2018 12:26:14:6 -- KeePass:apptask=
18-06-2018 12:26:14:8 -- Loaded task keepass2android.NullTask
18-06-2018 12:26:14:8 -- KeePass.OnCreate
18-06-2018 12:26:14:16 -- KeePass.OnStart
18-06-2018 12:26:14:17 -- KeePass.OnStart
18-06-2018 12:26:14:73 -- FileSelect.OnCreate
18-06-2018 12:26:14:75 -- FileSelect:apptask=NullTask
18-06-2018 12:26:14:105 -- Loaded task keepass2android.NullTask
18-06-2018 12:26:14:147 -- FileSelect.OnStart
18-06-2018 12:26:14:156 -- FileSelect.OnResume
18-06-2018 12:26:14:523 -- KeePass.OnStop
18-06-2018 12:26:14:524 -- KeePass.OnDestroyTrue
18-06-2018 12:26:14:526 -- KeePass.OnDestroyTrue
18-06-2018 12:26:15:812 -- FileSelect.OnPause
18-06-2018 12:26:16:274 -- FileSelect.OnStop
18-06-2018 12:26:16:385 -- FileSelect.OnDestroyTrue
18-06-2018 12:26:16:721 -- KeePass.OnCreate
18-06-2018 12:26:16:722 -- KeePass:apptask=
18-06-2018 12:26:16:723 -- Loaded task keepass2android.NullTask
18-06-2018 12:26:16:723 -- KeePass.OnCreate
18-06-2018 12:26:16:731 -- KeePass.OnStart
18-06-2018 12:26:16:731 -- KeePass.OnStart
18-06-2018 12:26:16:766 -- FileSelect.OnCreate
18-06-2018 12:26:16:767 -- FileSelect:apptask=NullTask
18-06-2018 12:26:16:768 -- Loaded task keepass2android.NullTask
18-06-2018 12:26:16:808 -- FileSelect.OnStart
18-06-2018 12:26:16:819 -- FileSelect.OnResume
18-06-2018 12:26:17:160 -- KeePass.OnStop
18-06-2018 12:26:17:161 -- KeePass.OnDestroyTrue
18-06-2018 12:26:17:162 -- KeePass.OnDestroyTrue
18-06-2018 12:26:17:608 -- FileSelect.OnPause
18-06-2018 12:26:17:645 -- FSSA.OnCreate with gdrive://.U8-sathaye.sanat%40gmail.com/.U8-Keepass+DB.kdbx-KP2A-0B4D4XDH3Mb5zMzA5enZONllWTGM
18-06-2018 12:26:17:664 -- JFS/OnResume Ioc.Path=gdrive://.U8-sathaye.sanat%40gmail.com/.U8-Keepass+DB.kdbx-KP2A-0B4D4XDH3Mb5zMzA5enZONllWTGM. Path=gdrive://.U8-sathaye.sanat%40gmail.com/.U8-Keepass+DB.kdbx-KP2A-0B4D4XDH3Mb5zMzA5enZONllWTGM
18-06-2018 12:26:17:776 -- JFS/OnResume Ioc.Path=gdrive://.U8-sathaye.sanat%40gmail.com/.U8-Keepass+DB.kdbx-KP2A-0B4D4XDH3Mb5zMzA5enZONllWTGM. Path=gdrive://.U8-sathaye.sanat%40gmail.com/.U8-Keepass+DB.kdbx-KP2A-0B4D4XDH3Mb5zMzA5enZONllWTGM
18-06-2018 12:26:17:865 -- No AppTask in OnActivityResult
18-06-2018 12:26:17:931 -- PasswordActivity.OnCreate
18-06-2018 12:26:17:932 -- PasswordActivity:apptask=
18-06-2018 12:26:17:936 -- Loaded task keepass2android.NullTask
18-06-2018 12:26:18:48 -- PasswordActivity.OnStart
18-06-2018 12:26:18:50 -- PasswordActivity.OnResume
18-06-2018 12:26:18:51 --  DatabaseIsUnlocked=False
18-06-2018 12:26:18:52 -- starting: True, Finishing: False, _performingLoad: False
18-06-2018 12:26:18:55 -- Pre-loading database file starting
18-06-2018 12:26:18:57 -- CFS: OpenWhenNoLocalChanges
18-06-2018 12:26:18:57 -- CFS: hashing cached version
18-06-2018 12:26:18:61 -- the name must not be empty: null
18-06-2018 12:26:18:64 -- couldn't open from remote gdrive://.U8-sathaye.sanat%40gmail.com/.U8-Keepass+DB.kdbx-KP2A-0B4D4XDH3Mb5zMzA5enZONllWTGM
18-06-2018 12:26:18:66 -- System.Exception: the name must not be empty: null ---> Java.Lang.IllegalArgumentException: the name must not be empty: null
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <4dae5dc8597445389a8463cb71b4ac18>:0 
  at Java.Interop.JniEnvironment+InstanceMethods.CallObjectMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00069] in <86ac3bc056364497b62e27ac17f772b1>:0 
  at Android.Runtime.JNIEnv.CallObjectMethod (System.IntPtr jobject, System.IntPtr jmethod, Android.Runtime.JValue* parms) [0x0000e] in <62fc38e94b2d440985e4a83cb6868726>:0 
  at Keepass2android.Javafilestorage.GoogleDriveFileStorage.OpenFileForRead (System.String p0) [0x00062] in <ce2b43bdee0f496d890930fc23210b69>:0 
  at keepass2android.Io.JavaFileStorage.OpenFileForRead (KeePassLib.Serialization.IOConnectionInfo ioc) [0x0000d] in <a309bf07b3e14ed59161355f97c719fb>:0 
   --- End of inner exception stack trace ---
  at keepass2android.Io.JavaFileStorage.OpenFileForRead (KeePassLib.Serialization.IOConnectionInfo ioc) [0x0002b] in <a309bf07b3e14ed59161355f97c719fb>:0 
  at keepass2android.Io.OfflineSwitchableFileStorage.OpenFileForRead (KeePassLib.Serialization.IOConnectionInfo ioc) [0x00006] in <a309bf07b3e14ed59161355f97c719fb>:0 
  at keepass2android.Io.CachingFileStorage.UpdateCacheFromRemote (KeePassLib.Serialization.IOConnectionInfo ioc, System.String cachedFilePath) [0x00000] in <a309bf07b3e14ed59161355f97c719fb>:0 
  at keepass2android.Io.CachingFileStorage.OpenFileForReadWhenNoLocalChanges (KeePassLib.Serialization.IOConnectionInfo ioc, System.String cachedFilePath) [0x00023] in <a309bf07b3e14ed59161355f97c719fb>:0 
  at keepass2android.Io.CachingFileStorage.OpenFileForRead (KeePassLib.Serialization.IOConnectionInfo ioc) [0x00030] in <a309bf07b3e14ed59161355f97c719fb>:0 
18-06-2018 12:26:18:69 -- Pre-loading database file completed
18-06-2018 12:26:18:107 -- PasswordActivity.OnPause
18-06-2018 12:26:18:188 -- PasswordActivity.OnResume
18-06-2018 12:26:18:189 --  DatabaseIsUnlocked=False
18-06-2018 12:26:18:190 -- starting: False, Finishing: False, _performingLoad: False
18-06-2018 12:26:18:553 -- FileSelect.OnStop
18-06-2018 12:26:18:633 -- FileSelect.OnDestroyTrue
18-06-2018 12:26:21:39 -- PasswordActivity.OnPause
18-06-2018 12:26:21:69 -- AppSettingsActivity.OnCreate
18-06-2018 12:26:21:72 -- AppSettingsActivity:apptask=
18-06-2018 12:26:21:138 -- AppSettingsActivity.OnStart
18-06-2018 12:26:21:141 -- AppSettingsActivity.OnResume
18-06-2018 12:26:21:142 --  DatabaseIsUnlocked=False
18-06-2018 12:26:21:589 -- PasswordActivity.OnStop
bg777 commented 6 years ago

@PhilippC The both permissions were set. Re-toggling didn't help (tried several times in different ways).

One of the ways to reproduce the issue:

  1. click "Open file..."
  2. click "Google Drive"
  3. choose a Google account used before (I have multiple Google accounts on the smartphone)

-> Error displayed

But it works, if I choose another Google account, not used with Keepass2android before !

Finally, removing of access permission in Google account helped: https://myaccount.google.com/permissions?pli=1 Afterwards it was possible to grant the permission anew.

Barleyman commented 6 years ago

Toggling permissions off and back on fixed it.

r100gs commented 6 years ago

@PhilippC

Edit: Ok, it took some time to remove permissions from google drive. Now everything works perfect again

I have the same problem as bg777

Re-toggling did not help

The error message is: " the name must not be empty: null"

I use Oneplus 3 with Android 8.0.0

I removed the google permissions but did not help

Same error

PhilippC commented 6 years ago

to anybody who still has the error: could you please join the beta channel (https://play.google.com/apps/testing/keepass2android.keepass2android), and after receiving 1.05e (maybe a couple of hours later) please try again. I have made a few changes to how the app requests the permissions (and this is a permission issue, related to changes in Android, https://developer.android.com/about/versions/oreo/android-8.0-changes#rmp), but can only "hope" this will fix the issues. For this reason, please give me feedback. Thanks!

SteveLane commented 6 years ago

Hi @PhilippC - I joined the beta channel, updated, and after some minutes (maybe only 10 or so) I did not see the issue.

This was using Android 8.1.0

travisbicks commented 6 years ago

@PhilippC - Hi, I joined the beta channel and updated but I'm still having the issue over 10 hours later. Toggling permissions did not help. I removed the permission from google drive but cannot now access google drive through the app and get the error message: "the name must not be empty: null" I'm using a OnePlus 3T, Android 8.0.0

PhilippC commented 6 years ago

@travisbicks first, please check the version by going to settings/about. If you have 1.05e and it still does not work, then please try to clear the app cache.

travisbicks commented 6 years ago

@PhilippC Yes, I had 1.05e. As you suggested, restarting my phone and clearing the app cache did the trick and it is now working. Thanks! I downloaded your donate app and bought you a beer. I think it worked but I didn't see the consume beer animation. Thanks again!

lepoitr commented 6 years ago

Hmm, clearing cache. What happens if I upgrade app before syncing all changes to the servers (cause some may be temporary unacessible)? Will I loose updates made on phone?

PhilippC commented 6 years ago

As I wrote above, you should not have local unsynchronized changes when clearing the cache. They would be lost then.