在我的产品中,我发现当我将 APK 文件安装到运行 android 4.0.1 的 Galaxy Nexus 时,安装了不正确的 .so 文件。我有一个所谓的“胖”APK,其中包含 armeabi、armeabi-v7a 和 x86 的 native 代码。
我发现 armeabi CPU ABI 的 .so 文件是从 APK 文件而不是 armeabi-v7a .so 文件中提取的。如果我从 APK 文件中删除“armeabi”文件夹,则 galaxy nexus 会正确安装 armeabi-v7a 文件夹中的 .so 文件。
我已验证 nexus 的 CPU ABI 是“armeabi-v7a”,它的辅助 ABI 是“armeabi”。
有没有其他人看到这个问题,他们有没有找到一种方法来解决这个问题,而无需从 APK 的 libs 目录中删除“armeabi”文件夹?
最佳答案
这似乎是一个错误。我还通过使用 native 代码创建一个小项目对其进行了测试,实际上 Galaxy Nexus 选择了错误的库(armeabi 而不是 armeabi-v7a)。
我已经在 http://code.google.com/p/android/issues/detail?id=25321 报告了这个错误, 示例项目附加在错误上。请 star 它以引起 Android 工程师的注意。
似乎另一个 StackOverflow 问题也源自此错误:Android floating point math performance .
关于android - Galaxy Nexus - 安装时选择了错误的 CPU ABI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8714671/