Android Studio(Beta v0.8.6)和SQLCipher(v3.1.0)集成

时间:2014-08-19 18:17:56

标签: android integration sqlcipher

我一直在寻找解决问题的方法很长一段时间,我只想与其他可能遇到同样问题的人分享我的解决方案。

我来自Eclipse IDE开发Android应用程序,我想查看Android Studio IDE。所以我下载了当前的Android Studio(BETA v0.8.6),到目前为止,我非常喜欢Android Studio的功能。

我的问题: 我正在使用SQLCipher库将加密的数据库包含到我的项目中。不幸的是,将SQLCipher集成到Android Studio中并不像他们在官方SQLCipher网站上所说的那样(因为howto是为Eclipse IDE编写的)。 所以我在网上搜索将SQLCipher集成到Android Studio中的解决方案,因为我无法将其导入到我的主要活动java类中。

我的解决方案: 您从官方网站下载SQLCipher版本。在该文件夹中,您将看到两个文件夹。 “assets”文件夹和“libs”文件夹。

在“libs”文件夹中,有* .jar文件和每个支持的体系结构的一些文件夹,其中包含一些* .so文件。

现在您执行以下操作:

  1. 转到您的项目文件夹(标准名称:C:\ Users \\ AndroidStudioProjects \)
  2. 打开“app”文件夹
  3. 将三个.jar文件(commons-codec,guava-r09,sqlcipher)复制到“lib”文件夹中。
  4. 现在转到:app \ src \ main并创建两个文件夹:“assets”和“jniLibs”。
  5. 将icudt46l.zip文件复制到“assets”文件夹中。
  6. 将“armeabi”,“armeabi-v7a”和“x86”文件夹复制到“jniLibs”文件夹中。
  7. 现在启动Android Studio并打开您的项目。 在Android Studio中,您可以在左侧的树状视图中看到这些文件。

    1. 在Android Studio中展开“app”文件夹,以便查看“build.gradle”文件。
    2. 打开“build.gradle”文件。
    3. 现在在grade.build文件中,请确保此代码段包含在文件的底部:

      dependencies {
          compile fileTree(dir: 'libs', include: ['*.jar'])
      }
      
    4. 现在看起来应该类似于:

      apply plugin: 'com.android.application'
      android {
          compileSdkVersion 'android-L'
          buildToolsVersion "20.0.0"
          defaultConfig {
              applicationId "com.example.testapp"
              minSdkVersion 15
              targetSdkVersion 'L'
              versionCode 1
              versionName "1.0"
          }
          buildTypes {
              release {
                  runProguard false
                  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
              }
          }
          sourceSets {
              main {
                  jniLibs.srcDirs = ['libs']
              }
          }
      }
      dependencies {
          compile fileTree(dir: 'libs', include: ['*.jar'])
      }
      
    5. 最后,SQLCipher的导入现在应该正常工作。 使用该名称创建jniLibs文件夹非常重要!否则它将无法工作。

      我也想添加图片,但我还没有任何信用点。只要我有这些,我就会把我拍的照片添加到这篇文章中。

      格尔茨, 斯特芬

0 个答案:

没有答案