Android 某些用户无法 installed/updated 应用 (Xamarin)
Android App can't be installed/updated for some users (Xamarin)
我们公司正在 Xamarin.Forms (3.5.0) 框架中开发 Android 应用程序。从现在开始,所有用户都可以毫无问题地从 Google Play 商店更新应用程序。新更新后,其中一些出现 Google 播放错误 "Can't install app"。像这个 https://i.ytimg.com/vi/XOAgJz2vQu4/hqdefault.jpg 但没有错误代码。这个问题只发生在部分用户身上(大约 80% 的用户已经更新到最新版本)。他们已经尝试删除 Google 播放缓存和其他解决此问题的方法。我们没有更改任何 min 和 target SDK。我们added/changed:
- 支持 64 位设备(在 Xamarin 构建设置中添加
arm64-v8a
,因此现在 APK 包含 lib/armeabi-v7a
和新文件夹 lib/arm64-v8a
)
- 已添加
networkSecurityConfig
以支持我们的自签名 SSL 证书
launchMode
设置为 singleTask
- 添加提供商
com.crashlytics.android.CrashlyticsInitProvider
和 com.crashlytics.android.CrashlyticsInitProvider
- 添加接收者
com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver
并允许 android.permission.INSTALL_PACKAGES
- 使用
android.permission.BIND_JOB_SERVICE
权限添加服务 com.google.android.gms.measurement.AppMeasurementService
和 com.google.android.gms.measurement.AppMeasurementJobService
我认为问题不在于我们的应用程序包或我们所做的更改。例如,一位用户在使用 Samsung Note 9 时遇到了这个问题,但 Google Play 控制台中的统计数据表明,此设备从 1.0.1 版更新到 1.1.1 版在 118 台设备中成功。其他设备也是如此。大约 99% 的设备更新成功,但其中一些安装或更新失败。
你能提供一些帮助和解决这个问题的方法吗?我们甚至无法在我们的设备中重现此错误,因为每个更新或删除和安装过程都没有问题。它适用于 32 位设备,适用于 64 位设备,适用于用户遇到问题的设备和 Android OS 版本。我们没有收到任何错误消息或日志,因为错误出现在 Google Play 中。我们收到很多 1 星评价,想帮助我们的用户,但我们就是不能...
谢谢!
问题在于将 Crashlytics 集成到 Xamarin.Forms 应用程序中。在恢复集成 Crashlytics 并发布新版本时所做的所有更改后,人们现在可以成功安装和更新应用程序。为了确认这一点,我从头开始创建了新的测试应用程序,添加了所有 nuget 包,启用了 Crashlytics 功能并安装在模拟器上。之后,我尝试安装我们以前的应用程序版本,其中包含 Crashlytics。当我尝试使用 adb 安装时出现错误:
adb: failed to install temp\our.app.package.name.apk: Failure [INSTALL_FAILED_CONFLICTING_PROVIDER: Package couldn't be installed in /data/app/our.app.package.name--xtUfCuOL6yxO3kB0Ev4tQ==:
Can't install because provider name dollar_openBracket_applicationId_closeBracket (in package our.app.package.name) is already used by com.companyname.TestApplication]
我们现在要使用 App Center 崩溃报告系统,因为集成非常简单(大约需要 20 分钟)并且没有诸如此类的副作用。
我们公司正在 Xamarin.Forms (3.5.0) 框架中开发 Android 应用程序。从现在开始,所有用户都可以毫无问题地从 Google Play 商店更新应用程序。新更新后,其中一些出现 Google 播放错误 "Can't install app"。像这个 https://i.ytimg.com/vi/XOAgJz2vQu4/hqdefault.jpg 但没有错误代码。这个问题只发生在部分用户身上(大约 80% 的用户已经更新到最新版本)。他们已经尝试删除 Google 播放缓存和其他解决此问题的方法。我们没有更改任何 min 和 target SDK。我们added/changed:
- 支持 64 位设备(在 Xamarin 构建设置中添加
arm64-v8a
,因此现在 APK 包含lib/armeabi-v7a
和新文件夹lib/arm64-v8a
) - 已添加
networkSecurityConfig
以支持我们的自签名 SSL 证书 launchMode
设置为singleTask
- 添加提供商
com.crashlytics.android.CrashlyticsInitProvider
和com.crashlytics.android.CrashlyticsInitProvider
- 添加接收者
com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver
并允许android.permission.INSTALL_PACKAGES
- 使用
android.permission.BIND_JOB_SERVICE
权限添加服务
com.google.android.gms.measurement.AppMeasurementService
和 com.google.android.gms.measurement.AppMeasurementJobService
我认为问题不在于我们的应用程序包或我们所做的更改。例如,一位用户在使用 Samsung Note 9 时遇到了这个问题,但 Google Play 控制台中的统计数据表明,此设备从 1.0.1 版更新到 1.1.1 版在 118 台设备中成功。其他设备也是如此。大约 99% 的设备更新成功,但其中一些安装或更新失败。
你能提供一些帮助和解决这个问题的方法吗?我们甚至无法在我们的设备中重现此错误,因为每个更新或删除和安装过程都没有问题。它适用于 32 位设备,适用于 64 位设备,适用于用户遇到问题的设备和 Android OS 版本。我们没有收到任何错误消息或日志,因为错误出现在 Google Play 中。我们收到很多 1 星评价,想帮助我们的用户,但我们就是不能...
谢谢!
问题在于将 Crashlytics 集成到 Xamarin.Forms 应用程序中。在恢复集成 Crashlytics 并发布新版本时所做的所有更改后,人们现在可以成功安装和更新应用程序。为了确认这一点,我从头开始创建了新的测试应用程序,添加了所有 nuget 包,启用了 Crashlytics 功能并安装在模拟器上。之后,我尝试安装我们以前的应用程序版本,其中包含 Crashlytics。当我尝试使用 adb 安装时出现错误:
adb: failed to install temp\our.app.package.name.apk: Failure [INSTALL_FAILED_CONFLICTING_PROVIDER: Package couldn't be installed in /data/app/our.app.package.name--xtUfCuOL6yxO3kB0Ev4tQ==:
Can't install because provider name dollar_openBracket_applicationId_closeBracket (in package our.app.package.name) is already used by com.companyname.TestApplication]
我们现在要使用 App Center 崩溃报告系统,因为集成非常简单(大约需要 20 分钟)并且没有诸如此类的副作用。