Unity安卓项目抛出“您的硬件不支持此应用程序,抱歉”错误。

4

我已经调查了2天。我读了很多东西。总结一下我所读的内容:

  • 非NEON设备将无法使用UNITY 5构建。
  • 您应该将安装位置设置为“自动或强制内部”
  • 您应该将写访问权限设置为“仅内部”

除了以上内容,我还尝试了这些纹理压缩设置:

  • 不覆盖
  • DXT(Tegra)

还有两种情况我尝试过:

  • 当我从UNITY构建游戏并生成apk。它在手机上运行良好。
  • 我选择“Google Android项目”并导出unity项目。导出后,我得到/assets/bin/文件夹并将其复制到我的android项目资产中。使用此选项,它无法正常工作。

我尝试的手机是索尼Xperia M5和One Plus 2。它们都有ARM Cortex-A53 CPU。因此,我认为排除了Non-NEON选项。我认为还应该有其他原因导致这个问题。

顺便说一句,游戏在s5、s6、s3 mini和Xperia Z1上都可以运行。

提前致谢。


LogCat里还有其他的信息吗? - CaseyB
似乎有些奇怪。你能否简单地 尝试其他手机,你肯定身边有朋友或亲戚吧? - Fattie
可能会有一些荒谬的问题,比如你忘记将Android设置为“开发者模式”吗?(谷歌一下。)我们在这里经常会忘记! - Fattie
1
@JoeBlow 是的,我已经在其他设备上尝试过,比如S5、S6、S3 mini和Xperia Z1。它们都可以工作。真的很尴尬。顺便说一下,"开发者模式"是关闭的。 - Onur Demir
@aod 你使用了任何插件吗? - Programmer
显示剩余5条评论
1个回答

6
一位Android团队的朋友发现,在与fresco集成后,本地库丢失了。fresco是一种强大的Android应用程序中显示图像的系统。此外,在fresco的github页面上存在一个问题: https://github.com/facebook/fresco/issues/361 其中,一个名为kassim的人说:“在Android上本地库的常见问题是,如果一个本地库对于一个abi可用,那么所有的本地库都需要对该abi可用,它不会回退到较低的支持abi,所以x86_64不会回退到x86。”
他建议将下面的代码放入build.gradle文件的android部分:
packagingOptions {
    exclude "lib/armeabi/libbitmaps.so"
    exclude "lib/armeabi/libgifimage.so"
    exclude "lib/armeabi/libimagepipeline.so"
    exclude "lib/armeabi/libmemchunk.so"
    exclude "lib/armeabi/libwebp.so"
    exclude "lib/armeabi/libwebpimage.so"
    exclude "lib/arm64-v8a/libbitmaps.so"
    exclude "lib/arm64-v8a/libgifimage.so"
    exclude "lib/arm64-v8a/libimagepipeline.so"
    exclude "lib/arm64-v8a/libmemchunk.so"
    exclude "lib/arm64-v8a/libwebp.so"
    exclude "lib/arm64-v8a/libwebpimage.so"
    exclude "lib/x86_64/libbitmaps.so"
    exclude "lib/x86_64/libgifimage.so"
    exclude "lib/x86_64/libimagepipeline.so"
    exclude "lib/x86_64/libmemchunk.so"
    exclude "lib/x86_64/libwebp.so"
    exclude "lib/x86_64/libwebpimage.so"
}

这解决了问题。


2
另一种可能性是在 build.gradle 中添加 ndk { abiFilters "armeabi-v7a" }。(如果您包括英特尔,则也可以是 abiFilters "armeabi-v7a","x86"。) - Over17

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接