标签: renderscript

制作.rs文件后未生成ScriptC_"name"(在带有Gradle的Android Studio中)

我刚刚在Android Studio中启动了renderscript.当我创建.rs文件时,不会生成ScriptC_DS类和.bc文件.我已经读过,一旦.rs文件被保存,它应该是自动生成的,所以我不确定出了什么问题.

DS.rs

#pragma version(1)
#pragma rs java_package_name(com.example.DSing)

void root(){

}
Run Code Online (Sandbox Code Playgroud)

的build.gradle

 apply plugin: 'com.android.application'

android {
compileSdkVersion 20
buildToolsVersion "20.0.0"

defaultConfig {
    applicationId "com.example.DSing"
    minSdkVersion 16
    targetSdkVersion 20
    versionCode 1
    versionName "1.0"
    renderscriptTargetApi 18
    renderscriptSupportMode true

}
buildTypes {
    release {
        runProguard false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
Run Code Online (Sandbox Code Playgroud)

MainActivity类目前没有任何内容(除了自动生成的默认值),但是当我尝试在内部创建私有ScriptC_DS时,我收到一条消息"无法解析符号ScriptC_DS". 主要活动

package com.example.DSing

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v8.renderscript.*;


public class Main extends Activity {
@Override
protected …
Run Code Online (Sandbox Code Playgroud)

android renderscript android-studio build.gradle

4
推荐指数
1
解决办法
2280
查看次数

android无法在api <17中加载SupportV8 RenderScript

我只是想在我的应用程序中使用RenderScript的ScriptIntrinsicBlur,我已经添加了renderscript.v8.jar(在android支持lib v8中)以支持17以下api但它在此行崩溃(在api <17这种情况下它在4.2上工作正常或更高) :

        RenderScript rs = RenderScript.create(getApplicationContext());
Run Code Online (Sandbox Code Playgroud)

和Exception输出

 java.lang.RuntimeException: An error occured while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:299)
        at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
        at java.util.concurrent.FutureTask.run(FutureTask.java:137)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
        at java.lang.Thread.run(Thread.java:856)
 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)
Run Code Online (Sandbox Code Playgroud)

任何人都知道我该怎么处理这个?

crash android renderscript android-support-library

4
推荐指数
1
解决办法
8069
查看次数

RenderScript内在函数高斯模糊

如何正确使用RenderScript内在函数.

如图所示http://android-developers.blogspot.com/2013/08/renderscript-intrinsics.html

//Assuming my original Bitmap is "bm"
Bitmap outputBitmap = Bitmap.createBitmap(bm.getHeight(),
bm.getWidth(), Config.ARGB_8888);

RenderScript rs = RenderScript.create(getApplicationContext());
ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur
.create(rs, Element.U8_4(rs));
Allocation tmpIn = Allocation.createFromBitmap(rs, bm);
Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
theIntrinsic.setRadius(25.f);
theIntrinsic.setInput(tmpIn);
theIntrinsic.forEach(tmpOut);
tmpOut.copyTo(outputBitmap);
bm.recycle();
rs.destroy
Run Code Online (Sandbox Code Playgroud)

我在初始布局上得到了outputBitmap的一些黑色区域,但是在用户滚动Horizo​​ntalScrollView的Scroller之后,它会被填充,使得drawable"刷新"本身.

我也得到这个错误(如果它有帮助):

09-01 05:54:11.246: E/RenderScript(11423): rsAssert failed: !mElements.size(), in frameworks/rs/rsElement.cpp at 375
Run Code Online (Sandbox Code Playgroud)

关于正确使用RS的任何建议都会有所帮助.

在此输入图像描述

android intrinsics renderscript

3
推荐指数
1
解决办法
3176
查看次数

使用API​​ @ 21和SDKTools @ 21.1.2在Android studio 1.0.1中添加Renderscript会导致构建错误

我正在尝试将Android 4.4移植到Android 5.0.我的应用程序使用Renderscript.目前,renderscript应用程序非常简单

#pragma version(1) // RenderScript version, 1 is the only one for now
#pragma rs java_package_name(com.example.andriod.rs_android_5) // our package
#pragma rs_fp_relaxed
uint16_t *output;
const uint16_t *input;
void __attribute__((kernel)) encrypt(uint16_t In, uint32_t x, uint32_t y){
    output[in] = x*input[in]; 
}
Run Code Online (Sandbox Code Playgroud)

我的build.gradle看起来像这样:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.andriod.rs_android_5"
        minSdkVersion 21
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
        renderscriptSupportModeEnabled true
        renderscriptTargetApi 21
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies …
Run Code Online (Sandbox Code Playgroud)

android renderscript

3
推荐指数
1
解决办法
3323
查看次数

有没有人设法使用RenderScript和新的Camera API获得YUV_420_888帧?

我正在使用RenderScript和Allocation从Android Camera2 API获取YUV_420_888帧,但是一旦我从分配中复制byte [],我只从组成帧的3个平面接收Y平面,而U和V平面值在字节[]中设置为0.我试图模仿previos相机API中的onPreviewframe,以便在应用程序处理相机帧时执行.我的分配创建如下:

Type.Builder yuvTypeBuilderIn = new Type.Builder(rs, Element.YUV(rs));
    yuvTypeBuilderIn.setX(dimensions.getWidth());
    yuvTypeBuilderIn.setY(dimensions.getHeight());
    yuvTypeBuilderIn.setYuvFormat(ImageFormat.YUV_420_888);
    allocation = Allocation.createTyped(rs, yuvTypeBuilderIn.create(),
            Allocation.USAGE_IO_INPUT | Allocation.USAGE_SCRIPT);
Run Code Online (Sandbox Code Playgroud)

而我的脚本看起来像:

#pragma version(1)
#pragma rs java_package_name(my_package)
#pragma rs_fp_relaxed

rs_allocation my_frame;
Run Code Online (Sandbox Code Playgroud)

android yuv renderscript android-camera android-5.0-lollipop

3
推荐指数
1
解决办法
9787
查看次数

Android - Renderscript支持库 - 加载RS jni库时出错

我试图将Renderscript支持库包含到我的项目中.我收到以下错误.

android.support.v8.renderscript.RSRuntimeException: Error loading RS jni library: java.lang.UnsatisfiedLinkError: Couldn't load rsjni: findLibrary returned null
Run Code Online (Sandbox Code Playgroud)

我没有使用任何Renderscript jar文件,我试图通过Gradle使用它.

这是我的Gradle.build文件

顶层

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:1.2.3'
}
}

ext {
compileSdkVersion="Google Inc.:Google APIs:22"
buildToolsVersion="23.0.1"
playStoreMinSdkVersion=16
amazonStoreMinSdkVersion=8
targetSdkVersion=22
versionCode=20
versionName="3.3.0"
runProguard=true
zipAlign=true
proguardConfiguration='../proguard.config'
}

allprojects {
repositories {
    jcenter()
}
}
Run Code Online (Sandbox Code Playgroud)

特定应用

defaultConfig {
    applicationId "**REMOVED**"
    //noinspection GroovyAssignabilityCheck
    targetSdkVersion rootProject.ext.targetSdkVersion
    //noinspection GroovyAssignabilityCheck
    versionCode rootProject.ext.versionCode
    //noinspection GroovyAssignabilityCheck
    versionName rootProject.ext.versionName

    renderscriptTargetApi 23
    renderscriptSupportModeEnabled true
}
Run Code Online (Sandbox Code Playgroud)

我尝试并在stackoverflow上找到可能的解决方案的一切都无法正常工作.我也将这个包含在我的proguard配置中

#RenderScript
-keepclasseswithmembernames class * { …
Run Code Online (Sandbox Code Playgroud)

android renderscript android-support-library android-gradle-plugin

3
推荐指数
1
解决办法
4517
查看次数

Renderscript没有使用构建工具25.0.0+进行编译

更新到构建工具25.0.2后,我收到以下错误(23.0.2工作正常):

Error:target API level '25' is out of range ('11' - '24')

Error:Execution failed for task ':app:compileDevDebugRenderscript'.
> com.android.ide.common.process.ProcessException: Error while executing process /usr/local/opt/android-sdk/build-tools/25.0.2/llvm-rs-cc with arguments {-O 3 -I /usr/local/opt/android-sdk/build-tools/25.0.2/renderscript/include/ -I /usr/local/opt/android-sdk/build-tools/25.0.2/renderscript/clang-include/ -p /<redacted>/app/build/generated/source/rs/dev/debug -o /<redacted>/app/build/generated/res/rs/dev/debug/raw -target-api 25 /<redacted>/app/src/main/rs/<redacted>.rs}
Run Code Online (Sandbox Code Playgroud)

我在app/build.gradle中有以下内容:

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.2'

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 25
        renderscriptTargetApi 21
        renderscriptSupportModeEnabled false
        ...
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,renderscriptTargetApi设置为21,但新的构建工具强制它为25.由于依赖于需要关闭它的库,我无法打开支持模式.

我是否应该恢复构建工具23.0.2并等待修复或是否有任何变通方法可以让renderscript使用最新的构建工具?

android renderscript android-gradle-plugin

3
推荐指数
1
解决办法
2145
查看次数

在系统签名的应用程序中使用自定义 RenderScript

如何在由系统证书签名的应用程序中使用自定义RenderScript脚本?

LogCat 输出:

E/RenderScript: Failed loading RS driver: dlopen failed: cannot locate symbol "_ZN7android12renderscript15RsdCpuReference6createEPNS0_7ContextEjjPFPKNS1_9CpuSymbolES3_PKcEPFPNS1_9CpuScriptES3_PKNS0_6ScriptEEPFPN4llvm6ModuleEPN3bcc8RSScriptESK_SK_EPFS8_S8_jES8_" referenced by "/system/vendor/lib/libRSDriver_adreno.so"...
E/RenderScript: Failed to load runtime libRSDriver_adreno.so, loading default
W/EventThread: type=1400 audit(0.0:200): avc: denied { execute } for path="/data/user_de/0/[packageName]/code_cache/com.android.renderscript.cache/librs.rgb2yuv.so" dev="mmcblk0p25" ino=65890 scontext=u:r:system_app:s0 tcontext=u:object_r:system_app_data_file:s0 tclass=file permissive=0
W/EventThread: type=1300 audit(0.0:200): arch=40000028 syscall=192 per=800008 success=no exit=-13 a0=9aa80000 a1=6c0 a2=5 a3=12 items=0 ppid=336 ppcomm=main auid=4294967295 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=(none) ses=4294967295 exe="/system/bin/app_process32" subj=u:r:system_app:s0 key=(null)
W/auditd: type=1323 audit(0.0:200): fd=120 flags=0x12
W/auditd: type=1327 audit(0.0:200): proctitle="[packageName]"
W/auditd: …
Run Code Online (Sandbox Code Playgroud)

android permission-denied android-source renderscript android-permissions

3
推荐指数
1
解决办法
1192
查看次数

Renderscript很慢,可以吗?

我有两个图像饱和滤波器的实现.一个用Java,一个用Renderscript.实际上我的nexus 4设备的渲染速度较慢,它怎么样?

Java实现:

public final void Saturation(Bitmap canvas, int saturation, boolean accumulate, int imageNumber)
{
    int height = canvas.getHeight();
    int width = canvas.getWidth();
    int[] pixels = new int[height*width];
    int[] resultPixels = new int[height*width];
    canvas.getPixels(pixels, 0, width, 0, 0, width, height);

    if (!accumulate)
    {
        for (int i = 0; i < pixels.length; i ++)
        {
            int red = Color.red(pixels[i]);
            int green = Color.green(pixels[i]);
            int blue = Color.blue(pixels[i]);

            double t = (double)red * 0.11 + (double)green * 0.59 + (double)blue * 0.3; …
Run Code Online (Sandbox Code Playgroud)

android renderscript

2
推荐指数
1
解决办法
1603
查看次数

使用渲染脚本支持lib时出现多个dex错误

我在gradle文件中使用支持库中的渲染脚本.

  renderscriptTargetApi 22
  renderscriptSupportModeEnabled true
Run Code Online (Sandbox Code Playgroud)

添加这两行后,我收到此错误

at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
UNEXPECTED TOP-LEVEL EXCEPTION:com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException:    
org.gradle.process.internal.ExecException: Process 'command 'C:\Program       
 Files\Java\jdk1.8.0_25\bin\java.exe'' finished with non-zero exit value 2
Run Code Online (Sandbox Code Playgroud)

android renderscript android-support-library

2
推荐指数
1
解决办法
819
查看次数