带有Gradle的Android Renderscript
作者:互联网
我正在构建一个Renderscript处理程序,为了我的一生,我无法使其通过Gradle在姜饼上运行.
该处理同时使用内部和自定义内核.
使用renderscriptTargetApi 18和renderscriptSupportMode true以及最新的构建工具buildToolsVersion“ 19.0.1”和类路径’com.android.tools.build:gradle:0.8. ‘和gradle 1.10可以正常编译,并且可以在ICS设备上正常运行,但是在Gingerbread上使用以下堆栈跟踪崩溃:
Caused by: android.support.v8.renderscript.RSRuntimeException: Error loading RS jni library: java.lang.UnsatisfiedLinkError: Couldn't load RSSupport: findLibrary returned null
at android.support.v8.renderscript.RenderScript.create(RenderScript.java:945)
at android.support.v8.renderscript.RenderScript.create(RenderScript.java:982)
at android.support.v8.renderscript.RenderScript.create(RenderScript.java:968)
我还尝试了以下各种版本:
buildToolsVersion:18.1.1、18.1
类路径:0.7. ,0.7.1
其中一些需要gradle 1.9才能运行,而我对此进行了更改,然后运行并崩溃了.
我还尝试在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'));
}
}
并根据此问题How to use the Renderscript Support Library with Gradle添加所有相关的二进制文件,有时(取决于我尝试的版本)它会编译并以相同的错误崩溃,或者由于renderscript v8程序包中方法名称的重复声明而无法编译(多个dex文件定义了android / support / v8 / renderscript / Allocations)
仅供参考,这是我的模块build.gradle:
apply plugin: 'android'
android {
compileSdkVersion 18
buildToolsVersion "19.0.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 18
versionCode 1
versionName "1.0"
renderscriptTargetApi 18
renderscriptSupportMode true
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
}
这是顶层build.gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.8.+'
}
}
allprojects {
repositories {
mavenCentral()
}
}
所以问题是:
什么是正确的组合才能使它成功编译并在ICS和Gingerbread上运行?
解决方法:
我不认为这是Gradle的错误-我认为这是Gingerbread及其以下的已知动态链接问题.尝试将以下内容添加到您的活动中:
static {
System.loadLibrary("RSSupport");
System.loadLibrary("rsjni");
}
您可能需要重新排序,我忘记了链接问题的确切性质.
标签:gradle,renderscript,android,android-gradle-plugin 来源: https://codeday.me/bug/20191122/2057056.html