签名的 apk 不适用于 7.1 以下的设备。*

Posted

技术标签:

【中文标题】签名的 apk 不适用于 7.1 以下的设备。*【英文标题】:Signed apk not working on devices below 7.1.* 【发布时间】:2019-07-10 10:21:41 【问题描述】:

我前段时间添加了一个描述的问题, Signed APK, “App not installed” in some devices, and in some devices same apk is working fine 问题仍未解决

但刚才我注意到它在 7.1.* 及更高版本的 android 设备上运行良好,但低于它就无法运行。即使它不适用于带有 MarshMallow 的模拟器。但是我已经将最小 sdk 设置为 18,所以它应该可以正常工作。您可以在我提供的问题链接中查看 Manifest、Gradle(应用程序和项目级别)文件。

【问题讨论】:

还会报错吗? @coroutineDispatcher 是的,还没解决 @SamarpitShrivastava 请在所有设备上可用的清单中检查 【参考方案1】:

对于布局失败,您需要在堆栈跟踪中读取原因(等)的原因,直到找到原始错误。

根据堆栈跟踪,问题在于您的资源drawable/car_background

Caused by: android.content.res.Resources$NotFoundException: Resource "com.diginfoexpert.MBAutodeals:drawable/car_background" (7f070069) is not a Drawable (color or path): TypedValuet=0x1/d=0x7f070069 a=-1 r=0x7f070069

我不确定为什么 7.1 设备会出现此问题。根据 7.1 发行说明,唯一可能相关或不相关的提示是添加了对 circular launcher icons 的支持。我在 7.0 中也看不到任何东西。

结合其他可能性:

可能您正在使用矢量资产,但它的格式不正确。 也许您使用的是矢量资产而不是 app:srcCompat。 可能您在 API 特定的资源桶中有一个名为 car_background 的无效文件。

希望这能让你走上正轨。

【讨论】:

谢谢。不,该应用程序在我的设备上完美运行,即 Redmi 4、Nougat 7.1.2。它也适用于我朋友的 7.1.* 以上的设备。 ... 8 或以上 8... 但错误发生在低于 7.1 的设备上,如 7.0。在 MArshmallow 上,它正在安装,但在我打开它的那一刻就崩溃了。如果drawable/car_background有问题,它也应该在我的设备上崩溃了。但它在我的设备上运行良好。 如果资产不是根本原因,为什么堆栈跟踪说它是问题所在。帮自己一个忙,调查一下。至少从布局中删除资产并在故障设备上运行应用程序以将其排除... > 另外,看看Resources$NotFoundException 的情况。 我已经尝试删除资产及其用途,但仍然无法正常工作。 car_background 被用作初始屏幕的背景。我将其删除并放置一个空白的白色屏幕作为该视图的背景,但它仍然无法正常工作。错误是一样的,“未安装应用程序”。 ^ 这是一个更有用的响应。您可能应该在启动时将崩溃分开,因为它是一个单独的问题(仍然可能与图像资产有关)。您也没有指出您目前正在尝试解决“未安装应用程序”。您是否浏览过此处的解决方案列表:***.com/questions/4226132/…?

以上是关于签名的 apk 不适用于 7.1 以下的设备。*的主要内容,如果未能解决你的问题,请参考以下文章

proguard applymapping - mapping.txt 的更改不适用于下一个构建签名的 apk

部署到 iPhone 设备不适用于 Xamarin.iOS,“没有 iOS 签名身份匹配”

iOS 7.1 模拟器不适用于 Xcode 7.1

Android Webview Back按钮适用于模拟器,但不适用于设备

Firebase 动态链接不适用于发布版本

Google API 密钥不适用于 Android