使用Android Renderscript v8支持库会导致与其他共享库的链接错误

时间:2015-03-31 19:31:15

标签: android gradle shared-libraries renderscript

我尝试使用SDK Build Tools 22.0.0中的v8 Renderscript支持库。

我使用gradle构建,并且我已经包含了这些行

defaultConfig {
    renderscriptTargetApi 21
    renderscriptSupportModeEnabled true
}

导入和使用库似乎很好,但是当我运行我的应用程序时,它会阻止尝试加载另一个共享库,从而产生UnsatisfiedLinkError。如果除了删除renderscript之外我没有做任何其他更改,那么就没有链接问题。

这周围有吗?我使用的是SDK工具22.0.0,gradle 2.2.1,Android Gradle插件1.1.0和Android Studio 1.1.0。

1 个答案:

答案 0 :(得分:2)

我发生的事情是,当我在64位设备上运行时,PathClassLoader在64位版本中找到了renderscript库,因此尝试加载项目中包含的所有其他库的64位版本。你不能运行混合64和32位。但由于某些库在64位版本中不存在,PathClassLoader无法找到它们,因此UnsatisfiedLinkError。对我有用的解决方案是排除64位版本的renderscript库。

看到这篇伟大的文章,看看它是如何完成的。 Mixing 32- and 64-bit Dependencies in Android

Stackoverflow post提出了一个更简单的解决方案