微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android Studio 模拟器上是否存在 Android 网络提供程序?

如何解决Android Studio 模拟器上是否存在 Android 网络提供程序?

我正在尝试对使用 Android LocationManager 的应用进行逆向工程。它正在尝试通过 .requestLocationUpdates 方法请求位置更新。但是,我收到网络提供商不存在的错误

java.lang.IllegalArgumentException: provider doesn't exist: network
    at android.os.Parcel.createException(Parcel.java:2075)
    at android.os.Parcel.readException(Parcel.java:2039)
    at android.os.Parcel.readException(Parcel.java:1987)
    at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:1151)
    at android.location.LocationManager.requestLocationUpdates(LocationManager.java:1019)
    at android.location.LocationManager.requestLocationUpdates(LocationManager.java:558)

点击应用程序中的按钮后记录此错误,然后它崩溃了。在执行此操作时,我正在使用 Genymotion 桌面模拟器在 Android 11.0 API 和 x86 架构上运行三星 galaxy S10。在一些 research 之后,问题似乎是由于 Genymotion 没有启用网络提供商。经过更多研究,似乎emulators can't use the network provider period

我不是 Android 专家,所有链接都与我的情况不完全相同,所以我想看看是否还有解决方法/这些链接的结果是否完全适用于我.

由于我的问题似乎与 Genymotion 相关,因此我决定尝试使用 Android Studio 的模拟器。我已经通过 Android 虚拟设备管理器 (AVD) 创建了一个虚拟设备。它是在 x86 架构上使用 Android 11.0 (Google Play) 的 Nexus 5 API 30。我的理解是有 three location providers in android,而我需要的是 network 提供程序。

我的主要问题是:Android Studio 模拟器是否启用了网络提供程序?

如果没有,模拟器是否可以启用它,或者我应该考虑为这种情况购买真正的安卓手机吗?

您可能会问为什么我不只是尝试单击同一个按钮并查看错误是否重复。嗯,我现在不能。原因比较复杂,总之就是偶尔会出现让我按下的按钮。我不知道它什么时候会再次可用,所以在此期间我正在尝试准备我的设置并更好地了解 android 的位置管理器。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。