如何在Gradle中使用Renderscript支持库

使用Gradle 支持Renderscript库吗? 如果是这样,你如何将它包含在你的项目中?

Solutions Collecting From Web of "如何在Gradle中使用Renderscript支持库"

Gradle for Android现在有了Renderscript v8的支持,在你的构build脚本中只有2行。 查看Austyn Mahoney的回答 。 保持最初的答案为历史目的。


老答案:

Gradle支持本地RS编译,但不支持RS支持库。 原因在于与其他支持库相比,RS支持库非常复杂。 RS支持库实际上是一个Java支持库,支持Java库的一组本地库,为您编译的每个脚本提供的附加本机库,以及用于为脚本生成标准LLVM位代码和本机库的替代工具链。 目前,只有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。

使用Android Studio:

将以下值添加到android gradle插件v0.14 +的build.gradle

 android { ... defaultConfig { ... renderscriptTargetApi 19 renderscriptSupportModeEnabled true } ... } 

对于老版本的Android gradle插件v0.13.3及以下版本

 android { ... defaultConfig { ... renderscriptTargetApi 19 renderscriptSupportMode true } ... } 

一旦完成,使用android.support.v8.renderscript. 在你的应用程序中的任 库jar和二进制文件是自动包含的。

遵循Tim的提示,我能够得到v8支持Gradle的工作,这里是我的项目布局:

在这里输入图像说明

我创build了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')); } } 

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

我知道这已经被回答了,但是我想我会分享我的经验与Android-Studio和Renderscript支持与生成工具21.1.0。 这是我在构build系统更新日志行26-32中find的:

  • 重命名一些属性,使事情更加一致。
    • BuildType.runProguard – > minifyEnabled
    • BuildType.zipAlign – > zipAlignEnabled
    • BuildType.jniDebugBuild – > jniDebuggable
    • BuildType.renderscriptDebug – > renderscriptDebuggable
    • ProductFlavor.renderscriptSupportMode – > renderscriptSupportModeEnabled
    • ProductFlavor.renderscriptNdkMode – > renderscriptNdkModeEnabled

所以你看,他们已经改变了属性名称。 我只是更新build.gradle使用:

renderscriptSupportModeEnabled为true

现在库被添加到项目,你不需要手动将它们添加到您的lib文件夹。

在撰写本文时,Gradle Android插件提供了实验支持。 有关更多信息,请参阅此testing项目 。

如果有人对如何将其打包为可分发的二进制.jar(例如,用于部署到maven仓库)感兴趣,则可以使用此文件结构来存储.jar文件。

整体文件结构Java类

pom.xml中:

 <?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>android</groupId> <artifactId>renderscript</artifactId> <version>19.0.3</version> <description>Artifactory auto generated POM</description> </project> 

对于build.gradle,添加: compile 'android:renderscript:19.0.3'到你的依赖clojure。

PS:renderscript库不会在armv6(armeabi)上运行,因此请确保Build.CPU_ABI是armeabi-v7a,mips或x86。