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

标签 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。

最佳答案

发生在我身上的事情是,当我在 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/

相关文章:

java - 如何清空(或重置)一个编辑文本

java.net.ConnectException : failed to connect to/10. 0.0.2(端口 80):连接失败:ETIMEDOUT(连接超时)

java.lang.UnsupportedClassVersionError : org/springframework/boot/gradle/plugin/SpringBootPlugin : Unsupported major. 次要版本 52.0

android - 如何为 crashlytics 定义 list 文件的路径

c++ - 库无法正确导出功能

c - 为什么我的共享库中的 __attribute__((constructor)) 不起作用?

android - AltBeacon onBeaconServiceConnect 未调用

Android:在 FrameLayout 中使填充动态化

gradle - Gradle 警告: “The libsDir method has been deprecated.”

赋予 'use lib' 的 perl 动态路径