ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

带有Gradle的Android Renderscript

2019-11-22 04:25:50  阅读:244  来源: 互联网

标签:gradle renderscript android android-gradle-plugin


我正在构建一个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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有