簡體   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