如何在Gradle中更改libs目录?

时间:2013-06-06 01:34:38

标签: android android-studio gradle android-gradle zbar

我想将Zbar集成到我的应用程序中,但似乎无法弄清楚如何使用新的Android Studio实现这一目标。

我查看了示例,并且没有任何问题地复制了代码。我遇到的问题是将libs添加到我的项目中我似乎无法弄清楚如何做到这一点。有人可以带我走过吗?

4 个答案:

答案 0 :(得分:21)

我对IntelliJ或Gradle并不是特别熟悉,但我已经弄清楚了。我使用了ZBarAndroidSDK-0.2

  1. 将ZBar SDK libs/文件夹的内容复制到项目的libs/文件夹中。
  2. 修改build.gradle(见下文)以确保您的APK中包含jar和本机库。
  3. 要使IntelliJ识别ZBar,请在项目结构中添加zbar.jar。为此,请转到File > Project Structure > Libraries > + Sign > Java并使用文件选择器查找zbar.jar。将其添加到您的项目中。
  4. 将以下内容添加到build.gradle中(确保保留其他任何依赖项):

    dependencies {
        compile files('libs/android-support-v4.jar')
        compile files('libs/zbar.jar')
    }
    
    task copyNativeLibs(type: Copy) {
        from(new File('libs')) { include '**' }
        into new File(buildDir, 'native-libs')
    }
    
    tasks.withType(Compile) { compileTask -> compileTask.dependsOn copyNativeLibs }
    
    clean.dependsOn 'cleanCopyNativeLibs'
    
    tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
        pkgTask.jniDir new File(buildDir, 'native-libs')
    }
    

    我的build.gradle基于这个要点:https://gist.github.com/khernyo/4226923

答案 1 :(得分:14)

实际上,@ Michael的答案是正确的,它也是过时的。现在,使用gradle所需要做的就是在build.gradle文件中添加以下行:

android {
...
  sourceSets {
    main.jniLibs.srcDirs = ['libs']
    test.jniLibs.srcDirs = ['libs']
  }
}

或直接将您的.so库放入:

  

的src /主/ jniLibs

这样,当您构建应用程序或库时,jni库将被复制到目标.jar / .aar文件中。

答案 2 :(得分:3)

如果您使用gradle 1.1.0,那么您必须对@ Michael的答案进行一些修改。 这是修改后的gradle文件代码,对我有用。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile files('libs/zbar.jar')
}
task copyNativeLibs(type: Copy) {
    from(new File('libs')) { include '**' }
    into new File(buildDir, 'native-libs')
}
tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn copyNativeLibs }

clean.dependsOn 'cleanCopyNativeLibs'

tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
    pkgTask.jniFolders = new HashSet<File>()
    pkgTask.jniFolders.add(new File(buildDir, 'native-libs'))
}

答案 3 :(得分:-2)

我在Android Studio 2.0中构建了ZBarAndroidSDK-0.2示例,只需从示例文件夹中打开CameraTest项目即可。

它自动将项目从eclipse重组为Android Studio。这就对了。