Thanks menion!
Have you also tested it in Android 4.4(Kitkat) above ?
I guess that the initialization error of the sqlite map in the external SD is related with Android 4.4
https://developer.android.com/about/versions/android-4.4.html---------------
External storage access
You can now read and write app-specific files on secondary external storage media, such as when a device provides both emulated storage and an SD card. The new method getExternalFilesDirs() works the same as the existing getExternalFilesDir() method except it returns an array of File objects. Before reading or writing to any of the paths returned by this method, pass the File object to the new getStorageState() method to verify the storage is currently available.
Other methods for accessing your app-specific cache directory and OBB directory also now have corresponding versions that provide access to secondary storage devices: getExternalCacheDirs() and getObbDirs(), respectively.
The first entry in the returned File array is considered the device's primary external storage, which is the same as the File returned by existing methods such as getExternalFilesDir().
Note: Beginning with Android 4.4, the platform no longer requires that your app acquire the WRITE_EXTERNAL_STORAGE or READ_EXTERNAL_STORAGE when you need to access only your app-specific regions of the external storage using the methods above. However, the permissions are required if you want to access the shareable regions of the external storage, provided by getExternalStoragePublicDirectory().
-------------------------