是否可能在Gradle中使用支持的Renderscript库?如果可以,如何将其包含到项目中?
使用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和二进制文件会自动包含在其中。
旧版回答:
Gradle支持本地RS编译,但不支持RS支持库。原因是相比其他任何支持库,RS支持库太过复杂了。RS支持库实际上是一个Java支持库,由支持该Java库的一组本机库、用于编译每个脚本的其他本机库以及用于生成标准LLVM位代码和脚本的本机库的备用工具链组成。目前只有ADT和Ant支持,Gradle还未支持。
但是,你已经可以在Gradle中使用RS支持库的某些部分了。如果要使用RS intrinsics,可以链接支持库的Java部分(sdk/build-tools/android-4.3/lib/renderscript/renderscript-v8.jar)和本机组件(sdk/build-tools/android-4.3/lib/renderscript/packaged/< arch >/*.so),然后就可以设置好了。
我知道Gradle支持支持库的支持将在不久的将来到来,但我没有确定的估算时间可以分享。
sourceSets { main { renderscript.srcDirs = ['src'] } }
- AllDayAmazing根据Tim的提示,我成功地将v8支持与Gradle配合使用,以下是我的项目布局:
我创建了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.defaultConfig
中设置renderscriptTargetApi
和renderscriptSupportMode
即可。 - tad现在,这些库已经添加到项目中,您不需要手动将它们添加到lib文件夹中。renderscriptSupportModeEnabled true
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'
备注:renderscript库不能在armv6(armeabi)上运行,因此请确保Build.CPU_ABI
是armeabi-v7a、mips或x86之一。
在撰写本文时,Gradle Android插件提供了实验性支持。有关更多信息,请参见test project。
renderscriptSupportMode
更改为renderscriptSupportModeEnabled
。 - Charles Madere