web-dev-qa-db-fra.com

Renderscript cassé avec AndroidX?

Depuis que j'ai migré vers androidx, je ne peux pas faire fonctionner Renderscript. Je reçois l'exception suivante:

2018-10-12 16: 27: 58.328 27195-27195/pl.qus.xenoamp2 A/zygote64: Java_vm_ext.cc:504] JNI ERREUR DÉTECTÉE DANS L'APPLICATION: JNI NewGlobalRef appelé avec l'exception Java.lang.ClassNotFoundException en attente: n'a pas recherchez la classe "Android.support.v8.renderscript.RenderScript" sur le chemin: DexPathList [[fichier Zip "/data/app/pl.qus.xenoamp2-xHJAddeg9oM-uGSxlvMp7A==/base.apk" oll, 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] sur Java.lang.Class dalvik.system.BaseDexClassLoader .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] sur Java.lang. Classe 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] sur 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] sur Java.lang.String Java.lang.Runtime.nativeLoad (Java.lang.String, Java.lang.ClassLoader, Java.lang.String) (Runtime.Java : -2) 2018-10-12 16: 27: 58.328 27195-27195/pl.qus.xenoamp2 A/zygote64: Java_vm_ext.cc:504] sur 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] sur 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 : 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] sur 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] sur 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] sur 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] sur 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] sur androidx.renderscript.RenderScript androidx.renderscript.RenderScript.create (Android.content.Context) (RenderScript.Java:1512)

J'ai des entrées habituelles dans gradle:

    renderscriptTargetApi 18
    renderscriptSupportModeEnabled true

Autre chose que je dois changer?

12
ssuukk

J'ai eu le même problème, je suis passé à une version non prise en charge de renderscript

En projet gradle

renderscriptTargetApi 17
renderscriptSupportModeEnabled false

Et dans la classe qui utilise renderscript

import Android.renderscript.RenderScript

au lieu de

import androidx.renderscript.RenderScript

Il a fait le travail pour moi mais je n'aime pas cette solution, à compléter

10

La réponse marquée le fait fonctionner, mais comme @Zee l'a mentionné, il semble que le rendu normal non pris en charge supprime la compatibilité 64 bits. Maintenant, j'ai reçu un message d'avertissement de la console Google Play à ce sujet lorsque j'essaie de publier mon application. Donc, je suppose que si nous utilisons toujours le rendu, nous devrons rester avec la version de support et ne pas migrer vers AndroidX pour l'instant.

2
NinjaCoder