繁体   English   中英

如何在Gradle中使用Renderscript支持库

[英]How to use the Renderscript Support Library with Gradle

可以在Gradle中使用Support Renderscript库吗? 如果是这样,您如何将其包括在项目中?

使用Android Studio:

添加以下值build.gradle用于安卓插件的gradle + v0.14

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

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

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

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

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。

按照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'));
    }
}

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

我知道已经解决了这个问题,但是我想与Build-tools 21.1.0一起分享Android-Studio和Renderscript支持的经验。 这是我在构建系统变更日志第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文件夹中。

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

如果有人对如何将其打包为可分发的二进制.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,在您的依赖项clojure中添加: compile 'android:renderscript:19.0.3'

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM