【问题标题】:'Network unreachable' on Play Store published app, but debug version worksPlay商店发布的应用程序上的“网络无法访问”,但调试版本有效
【发布时间】:2019-05-29 09:04:29
【问题描述】:

我无法使用 Play 商店发布的应用程序版本连接到我的 Chromecast Audio,但我可以在同一部手机上使用 USB 调试版本。两个版本都可以上网,即都成功找到了Chromecast设备的IP地址。

相同的手机、Chromecast、网络和代码。只是 Play 商店发布的 APK/Bundle 无法连接。

在我看到的 Logcat 中:

2019-05-27 11:05:12.753 9203-9370/? W/System.err: java.net.ConnectException: failed to connect to /192.168.100.109 (port 8009) from /:: (port 0): connect failed: ENETUNREACH (Network is unreachable)
2019-05-27 11:05:12.753 9203-9370/? W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:138)
2019-05-27 11:05:12.753 9203-9370/? W/System.err:     at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:129)
2019-05-27 11:05:12.753 9203-9370/? W/System.err:     at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:357)
2019-05-27 11:05:12.753 9203-9370/? W/System.err:     at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:201)
2019-05-27 11:05:12.753 9203-9370/? W/System.err:     at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:183)
2019-05-27 11:05:12.753 9203-9370/? W/System.err:     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
2019-05-27 11:05:12.753 9203-9370/? W/System.err:     at java.net.Socket.connect(Socket.java:616)
2019-05-27 11:05:12.753 9203-9370/? W/System.err:     at com.android.org.conscrypt.OpenSSLSocketImpl.connect(OpenSSLSocketImpl.java:263)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at com.android.org.conscrypt.OpenSSLSocketImpl.connect(OpenSSLSocketImpl.java:250)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at f.a.a.a.a.y.connect(Unknown Source:55)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at f.a.a.a.a.y.d(Unknown Source:4)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at f.a.a.a.a.z.a(Unknown Source:28)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at f.a.a.a.a.z.j(Unknown Source:5)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at f.a.a.a.a.z.e(Unknown Source:0)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at [my app's name].j.e(Unknown Source:29)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at [my app's name].j.b(Unknown Source:0)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at [my app's name].f.run(Unknown Source:3)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at java.lang.Thread.run(Thread.java:784)
2019-05-27 11:05:12.754 9203-9370/? W/System.err: Caused by: android.system.ErrnoException: connect failed: ENETUNREACH (Network is unreachable)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at libcore.io.Linux.connect(Native Method)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:126)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at libcore.io.IoBridge.connectErrno(IoBridge.java:152)
2019-05-27 11:05:12.754 9203-9370/? W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:130)

显然,我的应用可以访问网络,因为它找到了 AVR/Chromecast Audio 的 IP 地址 (192.168.100.109)。我还在清单中给了它 INTERNET 权限。我还在 build.gradle 文件中使用了 minifyEnabled trueshrinkResources true

为了方便,我使用ChromeCast Java API v2,而不是官方的Cast SDK,如果这有什么不同的话。

编辑:已解决。这是build.gradle (Module: app) 文件(即ProGuard)中的选项minifyEnabled true 不喜欢ChromeCast Java API v2 库。

【问题讨论】:

  • 谢谢。我在那里看不到任何有用的东西。调试版和发布版都是完全相同的代码。然而,唯一有效的是调试版本,它通过 USB 从 Android Studio 加载到我的手机上。
  • 检查你的 api 密钥了吗?因为release版本和debug版本是有区别的
  • 谢谢。我不需要 API 密钥。我只需要在 Google 上注册并在他们的网站上创建一个 Chromecast Receiver 应用程序,然后将应用程序 ID 传递给 Chromecast Java API v2 chromecast 对象。在我看来,库中的函数在发布版本上无法访问网络。
  • 太好了,让我知道将其发布为答案

标签: java android google-play proguard


【解决方案1】:

build.gradle (Module: app) 文件中启用选项minifyEnabled true 是问题所在。 ProGuard 和 ChromeCast Java API v2 库不能很好地协同工作,因此如果想要使用 minifyEnabled 选项,需要在 proguard-rules.pro 文件中添加排除项:

-keep class su.litvak.chromecast.**
-keepclassmembers class su.litvak.chromecast.** {*;}

非常感谢用户randomthis question 的接受回答。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    相关资源
    最近更新 更多