如何在Gradle中使用Renderscript支持库

时间:2013-10-29 12:24:40

标签: android gradle android-build renderscript

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

6 个答案:

答案 0 :(得分:125)

使用Android Studio:

将以下值添加到android gradle plugin 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和二进制文件是自动包含的。

答案 1 :(得分:16)

Gradle for Android现在支持Renderscript v8,构建脚本中只有2行。见answer by 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&gt; / * .so),然后你将被设置。

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

答案 2 :(得分:6)

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

enter image description here

我创建了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。*并使用内在函数。

答案 3 :(得分:2)

我知道这已经得到了回答,但我认为我可以通过Build-tools 21.1.0分享我对Android-Studio和Renderscript支持的经验。 这是我在build-system changelog第26-32行中找到的:

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

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

  

renderscriptSupportModeEnabled true

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

答案 4 :(得分:1)

撰写本文时,Gradle Android插件中有实验性支持。有关详细信息,请参阅此test project

答案 5 :(得分:1)

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

Overall file structure Java classes

的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。