如何在Gradle中使用Renderscript支持库

Jan*_*usz 32 android gradle android-build renderscript

是否可以将支持Renderscript库与Gradle 一起使用?如果是这样,你如何将它包含在你的项目中?

Aus*_*ney 127

使用Android Studio:

build.gradleandroid gradle插件v0.14 +添加以下值

android {
    ...
    defaultConfig {
        ...
        renderscriptTargetApi 19
        renderscriptSupportModeEnabled true
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

对于旧版本的android gradle插件v0.13.3及更低版本

android {
        ...
        defaultConfig {
            ...
            renderscriptTargetApi 19
            renderscriptSupportMode true
        }
        ...
    }
Run Code Online (Sandbox Code Playgroud)

完成后,请android.support.v8.renderscript.在应用中的任意位置使用.库jar和二进制文件自动包含在内.

  • 对于更新的gradle版本,如`0.14.0`,我认为你需要将`renderscriptSupportMode`改为`renderscriptSupportModeEnabled`. (10认同)
  • 这是要走的路.不再需要复杂的设置. (2认同)

Tim*_*ray 16

Gradle for Android现在支持Renderscript v8,在构建脚本中只有2行.见Austyn Mahoney的回答.保留原始答案以达到历史目的.


旧答案:

Gradle支持本机RS编译,但不支持RS支持库.原因是与任何其他支持库相比,RS支持库非常复杂.RS支持库实际上是一个Java支持库,一组支持Java lib的本机库,用于编译每个脚本的附加本机库,以及用于为脚本生成标准LLVM bitcode和本机库的备用工具链.现在,只有ADT和Ant支持; Gradle还没有.

但是,可以使用Gradle的RS支持库的某些部分.如果要使用RS内在函数,可以链接支持库的Java部分(sdk/build-tools/android-4.3/lib/renderscript/renderscript-v8.jar)和本机组件(sdk/build-tools) /android-4.3/lib/renderscript/packaged/ <arch>/*.so),然后你将被设置.

我知道Gradle对支持库的支持即将在不久的将来出现,但我没有一个可以分享的坚定的ETA.

  • 请注意,现在支持此功能.请参阅下面的其他答案,了解build.gradle中的语法以启用此功能. (4认同)

Xia*_*ang 6

根据Tim的提示,我能够使用Gradle获得v8支持,这是我的项目布局:

在此输入图像描述

我创建了libs文件夹,并复制了在SDK文件夹下提到的Tim文件.这是我的build.gradle更改:

dependencies {
    compile files('libs/renderscript-v8.jar')
}

android {

    tasks.withType(com.android.build.gradle.tasks.PackageApplication) {
        pkgTask -> pkgTask.jniFolders = new HashSet<File>();
            pkgTask.jniFolders.add(new File(projectDir, 'libs'));
    }
}
Run Code Online (Sandbox Code Playgroud)

之后,我可以导入android.support.v8.renderscript.*并使用内在函数.