Skip to content

Instantly share code, notes, and snippets.

@tmoertel
Last active December 29, 2015 00:29
Show Gist options
  • Save tmoertel/7586779 to your computer and use it in GitHub Desktop.
Save tmoertel/7586779 to your computer and use it in GitHub Desktop.
Summary of crashes in Android apps that use Chromecast device discovery
Summary: A few days ago, some Chromecast-supporting Android apps
started crashing upon launch. Other Android apps, notably YouTube,
remain unaffected, as do iOS apps and Chromecast support in Chrome
(see table below). Today, I discovered that these crashes go away
when I remove the SONOS BRIDGE device that connects my SONOS audio
system to the same network.
My hypothesis: There is some interaction between the Chromecast
device-discovery logic and the SONOS bridge's presence on the network
that causes the problem. The most likely explanation for why these
problems only showed up recently and don't affect all apps is that
they are caused by recent changes in the Chromecast libraries
released for Android and shared by the affected apps.
What Crashes Or Does Not
| Test | Android | iOS | Chromebook |
|----------------------------------+---------+-------+------------|
| Launch Chromecast app | crashes | works | |
| Launch Google Play Music app | crashes | | |
| Launch Google Play Movies&TV app | crashes | | |
| Launch HBO GO app | crashes | | |
| Launch YouTube app | works | works | |
| Use Youtube app to Cast video | works | works | |
| Setup Chromecast dev. via Chrome | | | works |
| Cast a tab in Chrome | | | works |
(All apps current as of 2013-11-21 12:00 EST)
Notes:
- The crashes occur shortly after app launch, apparently during
Chromecast discovery, and occur if and only if the SONOS bridge is
powered on *and* connected to the same network as the Chromecast
device. In my case, the SONOS bridge is connected via Ethernet
cable to the WiFi router that the Chromecast connects to via WiFi.
- The crashes still occur when the Chromecast device is powered off.
- Stack traces all look like this:
java.lang.IllegalArgumentException: Host name may not be null
at org.apache.http.HttpHost.<init>(HttpHost.java:83)
at org.apache.http.impl.client.AbstractHttpClient.determineTarget(AbstractHttpClient.java:497)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
at android.net.http.AndroidHttpClient.execute(AndroidHttpClient.java:267)
at com.google.cast.bm.a(SourceFile:167)
at com.google.cast.bm.a(SourceFile:84)
at com.google.cast.ao.a(SourceFile:162)
at com.google.cast.ao.a(SourceFile:141)
at com.google.cast.bj.a(SourceFile:76)
at com.google.cast.ap.c(SourceFile:120)
at com.google.cast.ap.doInBackground(SourceFile:20)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment