我正在尝试使用来自 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。
最佳答案
发生在我身上的事情是,当我在 64 位设备上运行时,PathClassLoader
发现了 64 位版本的 renderscript 库,因此尝试加载项目中包含的所有其他库的 64 位版本。您不能混合运行 64 位和 32 位。但是由于某些库在 64 位版本中不存在,PathClassLoader
无法找到它们,因此出现 UnsatisfiedLinkError
。对我有用的解决方案是排除 64 位版本的 renderscript 库。
请参阅这篇很棒的文章,了解它是如何完成的。 Mixing 32- and 64-bit Dependencies in Android
这Stackoverflow post建议一个更简单的解决方案
关于android - 使用 Android Renderscript v8 支持库导致与其他共享库的链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29376957/