sqlcipher / android-database-sqlcipher

Android SQLite API based on SQLCipher
https://www.zetetic.net/sqlcipher/sqlcipher-for-android/
Other
2.76k stars 567 forks source link

App crashes On Nexus 6P with android version 6.0.1. #232

Closed mnagamani closed 7 years ago

mnagamani commented 8 years ago

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.xxx.yyy-1/base.apk"],nativeLibraryDirectories=[/data/app/com.xxx.yyy-1/lib/arm64, /data/app/com.xxx.yyy-1/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "libstlport_shared.so"

i got the latest binaries from : https://github.com/sqlcipher/android-database-sqlcipher/tree/master/external/android-libs and added the files in my project. But still i face this crash. Is there anything else i need to add. Thanks in advance for the help.

developernotes commented 8 years ago

Hi @mnagamani

SQLCipher for Android only supports armeabi, armeabi-v7a, and x86 platforms. If you are using other 3rd party libraries and wish to use SQLCipher for Android, you will need to remove any other arm64 or arm64-v8a support included from your other 3rd party libraries.

mnagamani commented 8 years ago

Thank you for response @developernotes .

sevar83 commented 8 years ago

Just to report that sometimes UnsatisfiedLinkError happens on a random basis. I occasionally get such exceptions during debugging with Instant Run enabled. It's easily solved by the usual "Stop, Clear, Uninstall and/or Clean & Rebuild" ritual :D

developernotes commented 8 years ago

Hi @sevar83

What version of SQLCipher for Android are you using? Is it a public release, or a build from source? What is the stack trace provided surrounding your link error at runtime?

krunal131987 commented 8 years ago

Hi @developernotes i am facing same issue that occurred this error, java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.azova-2/base.apk"],nativeLibraryDirectories=[/data/app/com.azova-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libstlport_shared.so"

It was only occurred while i disabled instant run. if it enable then getting different error,

sevar83 commented 8 years ago

@developernotes I don't use SQLCipher but a custom build of Spatialite based on your JNI wrappers without any crypto functions. Btw, I've seen you are going to release N support without the ICU. Will it be one version of SQLCipher that supports all api levels or there will be a separate version with N support? @krunal131987 Yes, with Instant Run it's a UnsatisfiedLinkError but with a different cause but don't remember exactly.

developernotes commented 8 years ago

Hi @krunal131987

Please take a look at this post, SQLCipher for Android does not support 64 bit native libraries currently.

developernotes commented 8 years ago

Hi @sevar83

The new branch will support all current API's including N.

sevar83 commented 8 years ago

Great, but will we still need to bundle the ICU.dat inside? I would love to ditch this fat mofo out!

developernotes commented 8 years ago

@sevar83 the ICU dependency has been removed from the android-n-preview branch.

krunal131987 commented 8 years ago

Hi @developernotes, still having same issue. Following are the folders that I can see in application/libs folder: armebi, armebi-v7a, armebi-v8a, mips, mips64, x86, x86_64. I checked with all combination and finally kept only three folder armebi, armebi-v7a & x86. But still it showing exact same previous

_java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.testsqlcipher-2/base.apk"],nativeLibraryDirectories=[/data/app/com.testsqlcipher-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libstlportshared.so"

Any suggestion here!!

krunal131987 commented 8 years ago

Hi @developernotes @sevar83 I was create new project to found which third party lib is conflict with sqlcipher and i found that third party libs, it is "skylink_sdk:0.9.5-RELEASE"

Any suggestion to fix out this conflict!!!

sevar83 commented 8 years ago

How did you decide that there is a conflict and skylink_sdk:0.9.5-RELEASE is the cause? Do you have libstlport_shared.so in your armebi, armebi-v7a & x86 folders?

developernotes commented 8 years ago

Hi @krunal131987

As @sevar83 mentioned, we will need additional information regarding the conflict. Does Skylink depend on SQLCipher for Android, or are they just shipping 64 bit native libraries?

krunal131987 commented 8 years ago

@sevar83 because if we just use SQlCipher then it work perfectly fine & vise versa. Yes, I try with keeping libstlport_shared.so in these three folder.

@developernotes they also have release for these three armebi, armebi-v7a & x86 architecture only, so I checked by delete all other architecture folder. But no luck. Let me know please if you need any debug/more information.

developernotes commented 8 years ago

Hi @krunal131987

If you are receiving the UnsatisfiedLinkError with a 64 bit path, it would appear that you are somehow still including something that contains a 64 native library. You may find it beneficial to use apktool to dissect your APK to see what is being included.