【问题标题】:Implement sqlcipher-for-android实现 sqlcipher-for-android
【发布时间】:2014-06-30 09:45:09
【问题描述】:

您好,我尝试实现 sql 密码。我从这里(https://github.com/sqlcipher/android-database-sqlcipher)使用来自 github 的代码。提取源代码并将其导入eclipse。但它没有运行。我得到了以下异常。请任何人告诉我我做错了什么?

FATAL EXCEPTION: main
 java.lang.UnsatisfiedLinkError: Couldn't load stlport_shared: findLibrary returned null
    at java.lang.Runtime.loadLibrary(Runtime.java:365)
    at java.lang.System.loadLibrary(System.java:535)
    at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:120)
    at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:115)
    at example.SQLDemoActivity.onCreate(SQLDemoActivity.java:20)
    at android.app.Activity.performCreate(Activity.java:5020)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2211)
    at android.app.ActivityThread.access$600(ActivityThread.java:149)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1300)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:153)
    at android.app.ActivityThread.main(ActivityThread.java:4987)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
    at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

标签: android sql sqlcipher


【解决方案1】:

您的项目未在您的应用程序中正确包含本机 .so 文件。这些是 SQLCipher for Android 运行所必需的。它们应该位于libs 文件夹下的特定于平台的文件夹中。作为参考,请查看 SQLCipher for Android test suite 的项目结构。

【讨论】:

  • 那个.so文件是什么?请告诉我如何添加.so文件
【解决方案2】:

我找到了解决方案: 最初我忘了添加armeabiarmeabi-v7ax86 文件夹。其中包含 .so 文件。

armeabi:

libdatabase_sqlcipher.so
libsqlcipher_android.so
libstlport_shared.so

armeabi-v7a:

libdatabase_sqlcipher.so
libsqlcipher_android.so
libstlport_shared.so

x86:

libdatabase_sqlcipher.so
libsqlcipher_android.so
libstlport_shared.so

我添加了 armeabi、armeabi-v7a、x86。 libs 中的文件夹现在可以正常工作了。

【讨论】:

    【解决方案3】:

    您不再需要下载 .zip 包和复制粘贴库。只是add a Gradle dependency,比如compile 'net.zetetic:android-database-sqlcipher:3.3.1-2@aar'Here你可以随时查看最新版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多