Gradleで Support Renderscript Library を使用できますか?もしそうなら、どのようにプロジェクトに含めますか?
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はありません。
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とバイナリは自動的に含まれます。
Timのヒントに従って、Gradleでv8サポートを利用することができました。プロジェクトレイアウトは次のとおりです。
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。*をインポートして組み込み関数を使用できます。
これはすでに答えられていることは知っていますが、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フォルダーに追加する必要がなくなりました。
この記事の執筆時点では、Gradle Androidプラグインに実験的なサポートがあります。詳細については、こちらの テストプロジェクト を参照してください。
これを配布可能なバイナリ.jarとしてパッケージ化する方法に興味がある場合(たとえば、Mavenリポジトリにデプロイするため)、このファイル構造を.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のいずれかです。