web-dev-qa-db-ja.com

GradleでRenderscriptサポートライブラリを使用する方法

Gradleで Support Renderscript Library を使用できますか?もしそうなら、どのようにプロジェクトに含めますか?

32
Janusz

Gradle for Androidは、ビルドスクリプトで2行のみのRenderscript v8をサポートするようになりました。 Austyn Mahoneyによる回答 を参照してください。歴史的な目的のための元の答え。


古い回答:

GradleはネイティブRSコンパイルをサポートしていますが、RSサポートライブラリはサポートしていません。その理由は、RSサポートライブラリが他のサポートライブラリに比べて非常に複雑だからです。 RSサポートライブラリは、実際にはJavaサポートライブラリ、そのJava lib、コンパイルするスクリプトごとの追加ネイティブライブラリ、およびスクリプトの標準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はありません。

16
Tim Murray

Android Studio:

Android gradle plugin v0.14 +build.gradleに次の値を追加します

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

古いバージョンの場合Android gradle plugin v0.13.3以下

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

それが完了したら、アプリの任意の場所でAndroid.support.v8.renderscript.を使用します。ライブラリjarとバイナリは自動的に含まれます。

126
Austyn Mahoney

Timのヒントに従って、Gradleでv8サポートを利用することができました。プロジェクトレイアウトは次のとおりです。

enter image description here

Libsフォルダーを作成し、TimがSDKフォルダーの下に記載したファイルをコピーしました。そして、ここに私の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。*をインポートして組み込み関数を使用できます。

6
xy uber.com

これはすでに答えられていることは知っていますが、Build-tools 21.1.0でAndroid-StudioとRenderscriptサポートの経験を共有すると思いました。これは私がbuild-systemで見つけたものです changelog 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フォルダーに追加する必要がなくなりました。

2
Joe3112

この記事の執筆時点では、Gradle Androidプラグインに実験的なサポートがあります。詳細については、こちらの テストプロジェクト を参照してください。

1
tad

これを配布可能なバイナリ.jarとしてパッケージ化する方法に興味がある場合(たとえば、Mavenリポジトリにデプロイするため)、このファイル構造を.jarに使用できます。

Overall file structureJava 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のいずれかです。