用AndroidX打破Renderscript?

ssu*_*ukk 12 android renderscript android-renderscript

由于我已经迁移到androidx,我无法运行Renderscript.我得到以下异常:

2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504] JNI在应用程序中检测到错误:JNI NewGlobalRef调用挂起异常java.lang.ClassNotFoundException:没有在路径上找到类"android.support.v8.renderscript.RenderScript":DexPathList [[zip文件"/data/app/pl.qus.xenoamp2-xHJAddeg9oM-uGSxlvMp7A==/base.apk"],nativeLibraryDirectories=[/data /app/pl.qus.xenoamp2-xHJAddeg9oM-uGSxlvMp7A==/lib/arm64,/data/app/pl.qus.xenoamp2-xHJAddeg9oM-uGSxlvMp7A==/base.apk!/lib/arm64-v8a,/ system/lib64,/ system/vendor/lib64]] 2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504] at java.lang.Class dalvik.system.BaseDexClassLoader java.lang上的.findClass(java.lang.String)(BaseDexClassLoader.java:93)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504].类java.lang.ClassLoader.loadClass(java.lang.String,boolean)(ClassLoader.java:379)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote6 4:java_vm_ext.cc:504] java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String)(ClassLoader.java:312)2018-10-12 16:27:58.328 27195-27195/pl .qus.xenoamp2 A/zygote64:java_vm_ext.cc:504] at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String,java.lang.ClassLoader,java.lang.String)(Runtime.java : - )2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504] at java.lang.String java.lang.Runtime.doLoad(java.lang .string,java.lang.ClassLoader)(Runtime.java:1099)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504] at void java.lang .Runtime.loadLibrary0(java.lang.ClassLoader,java.lang.String)(Runtime.java:1014)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc void 504.在void java.lang.System.loadLibrary(java.lang.String)(System.java:1657)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext .cc:504]在androidx.renderscript.RenderScript androidx.renderscript .RenderScript.internalCreate(android.content.Context,int,androidx.renderscript.RenderScript $ ContextType,int)(RenderScript.java:1408)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504]在androidx.renderscript.RenderScript androidx.renderscript.RenderScript.create(android.content.Context,int,androidx.renderscript.RenderScript $ ContextType,int)(RenderScript.java:1599)2018- 10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504]在androidx.renderscript.RenderScript androidx.renderscript.RenderScript.create(android.content.Context,androidx.renderscript .RenderScript $ ContextType,int)(RenderScript.java:1549)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504]在androidx.renderscript.RenderScript androidx .renderscript.RenderScript.create(android.content.Context,androidx.renderscript.RenderScript $ ContextType)(RenderScript.java:1525)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64 :java_vm_ext.cc:504]在androidx.renderscript.RenderScript androidx.renderscript.RenderScript.create(android.content.Context)(RenderScript.java:1512)

我有平常的参赛作品:

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

还有什么我需要改变的吗?

小智 12

我有同样的问题,我切换到renderscript的非支持版本

在项目gradle中

renderscriptTargetApi 17
renderscriptSupportModeEnabled false
Run Code Online (Sandbox Code Playgroud)

在使用renderscript的类中

import android.renderscript.RenderScript
Run Code Online (Sandbox Code Playgroud)

代替

import androidx.renderscript.RenderScript
Run Code Online (Sandbox Code Playgroud)

它为我做了工作,但我不喜欢这个解决方案,要完成


bos*_*ere 7

构建工具(确切地说是预构建的 librsjni_androidx.so)存在问题,现在已在29.0.2版中修复

我已经通过将 compile sdk 升级到 API 29 并将构建工具升级到 29.0.2 来验证这一点。

编辑:这是我配置的内容build.gradle

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


Chr*_*043 5

在我的 gradle 模块文件中,我有:

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

而且,在迁移到 AndroidX 之前我进行了以下导入:

import android.support.v8.renderscript.Allocation;
import android.support.v8.renderscript.Element;
import android.support.v8.renderscript.Matrix4f;
import android.support.v8.renderscript.RenderScript;
import android.support.v8.renderscript.ScriptIntrinsicBlur;
import android.support.v8.renderscript.ScriptIntrinsicColorMatrix;
import android.support.v8.renderscript.ScriptIntrinsicConvolve3x3;
Run Code Online (Sandbox Code Playgroud)

迁移到AndroidX后,就像文档所说:

我在我的 gradle 模块文件中保留了相同的语句,但我升级到了 buildToolsVersion 29.0.2,我的compileSdkVersion 升级到了 28

我将之前的导入更改为以下内容,一切正常。

import androidx.renderscript.Matrix4f;
import androidx.renderscript.RenderScript;
import androidx.renderscript.Allocation;
import androidx.renderscript.Element;
import androidx.renderscript.ScriptIntrinsicBlur;
import androidx.renderscript.ScriptIntrinsicColorMatrix;
import androidx.renderscript.ScriptIntrinsicConvolve3x3;
Run Code Online (Sandbox Code Playgroud)