33

是否可以将Support Renderscript 库与 Gradle 一起使用?如果是这样,您如何将其包含在您的项目中?

4

6 回答 6

127

使用安卓工作室:

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

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

对于旧版本的 android gradle 插件 v0.13.3 及以下

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

完成后,android.support.v8.renderscript.在您的应用程序中的任何位置使用。库 jar 和二进制文件会自动包含在内。

于 2014-04-10T00:50:59.580 回答
16

Gradle for Android 现在支持 Renderscript v8,构建脚本中只有 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。

于 2013-10-30T21:13:45.710 回答
6

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

在此处输入图像描述

我创建了 libs 文件夹,并复制了 Tim 在 SDK 文件夹下提到的文件。这是我的 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.* 并使用内在函数。

于 2014-01-18T04:30:24.857 回答
2

我知道这已经得到了解答,但我想我会分享我对 Android-Studio 和 Renderscript 支持与 Build-tools 21.1.0 的经验。这是我在构建系统更改日志第 26-32 行中发现的内容:

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

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

renderscriptSupportModeEnabled true

现在这些库已添加到项目中,您无需手动将它们添加到您的 lib 文件夹中。

于 2014-11-16T13:54:49.563 回答
1

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

于 2014-01-07T01:35:45.670 回答
1

如果有人对如何将其打包为可分发的二进制 .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。

于 2014-04-09T15:29:37.753 回答