Shared publicly  - 
 
Update: All of the issues in the post below have now been resolved in Android Studio 0.8.3 onwards, released on 21 July 2014.

We have a workaround to enable paid apps that support Android Wear on the Play Store. In this blog post, we describe the necessary steps to get this working, and information about the problem. If your app is free then no steps are necessary and they will continue to work. We're working to make this easier for you in the future, and we apologize for the inconvenience.
219
48
Trent Bartlem's profile photoShuja Rafi's profile photoDharani Kumar's profile photoManoj Mahajan's profile photo
10 comments
 
Not much information about why this is happening.
 
+Julien Dodokal Paid apps on the Play Store are encrypted (as of 4.2, I think). This makes the /assets folder and the .dex file (the Java code) unreadable in other apps. However, /res is not encrypted.

To work around it, you either put your files in /res/raw (because /res isn't encrypted) or you create a ContentProvider (Specifically, FileProvider[1]) to give access to files in /assets. The Wear team went with the first option.

[1] https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis/content/FileProvider.java
 
+Luisa Severino This only applies if you're a dev who's releasing a Wear app with a paid Android app on the Play Store.
 
+Dustin Brand The problem described in the blog post is not caused by asset compression, even when everything is uncompressed, paid apps will still have the problem. By moving to res/raw, you ensure that the wearable APK is available immediately for install to the watch, whereas assets/ does not do this. Note that res/raw can also be compressed, so just moving the resource there does not guarantee it will be not compressed. See https://groups.google.com/forum/#!topic/android-developers/Vh4UyAeNwwQ
 
As mentioned above, the issues related to paid apps in the Play Store have been resolved in Android Studio 0.8.3 onwards, released on 21 July 2014. The gradle wearApp rule, and the packaging documentation, were updated to use res/raw. You can continue to use manual packaging if you want or use the standard wearApp rule to do the packaging automatically. +Wayne Piekarski 
Add a comment...