[Android] [Renderscript]将'rs_script'(又名'struct rs_script')传递给不兼容类型'rs_kernel'(又名'void *')的参数

问题描述:

当试图在Android N设备上使用渲染脚本运行应用程序时 - 只有这个错误[Android] [Renderscript]将'rs_script'(又名'struct rs_script')传递给不兼容类型'rs_kernel'(又名'void *')的参数

error:passing 'rs_script' (aka 'struct rs_script') to parameter of incompatible type 'rs_kernel' (aka 'void *') 

但同样的项目在Android 6中运行没有任何错误。此外,我可以生成apk文件,但在Android N它崩溃。

这里是它给人的问题 -

rs_script gScript; 
void filter() { 
    rsForEach(gScript, gIn, gOut); 
} 
... 

gradle这个配置

defaultConfig { 
     ..... 
     minSdkVersion 16 
     targetSdkVersion 25 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
     multiDexEnabled true 
     renderscriptTargetApi 18 
     renderscriptSupportModeEnabled true 
    } 

和proguard相关规则

-keep class public 
-keep class android.support.v8.renderscript.** { *; } 

我试图用不同的renderscriptTargetApi 24或22,但会将给出同样的错误。

在默认配置中,我更改了targetSdkVersion 21。因为我试图在7.0.0(android 24)中运行应用程序。有效。