是否可以将Support Renderscript Library与Gradle一起使用?如果是这样,你如何将它包含在你的项目中?
答案 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支持,这是我的项目布局:
我创建了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。
的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。