I am developing an Android App (or thought I was) that includes plant descriptions and photographs for 1,200 plants. This data caused the App to be around 250 Meg. When I got to releasing the App I discovered that the App had to be broken into two parts: the main program and most of the data. Breaking up the program took about a week and it was annoying to write my own file system, but that's the way it goes. (And as far as I can tell, Google's program to let Zip files work with URI's doesn't work with Webview.)
Then I tackled the problem of putting a downloader into my program to read the data from Google-Play. The instructions for doing this made no sense. After working on this for a day I finally read the Wikipedia article about Android where it explained that Android development had recently switched from an Eclipse development system to Android Studio. The instructions were for the Eclipse development system. There are no instructions for Android Studio.
The first task in getting the Download software to run is to link to the library in the Extras package. My conclusion after working on this for a couple days was that not only was there no instructions on how to do this but that it can not be done. Linking to a library appears to be done in Android Studio in the File->Project Structure->Dependencies pop-up (although I was never able to discover any useful documentation on linking to a library with Android Studio). In this pop-up there are three ways of adding a "Dependencies" under the "+" symbol. After hours of dinking around I have concluded that you can't link to the Extras packages.
I searched the user/AppData/Local/sdk/extras/google/play_licensing and play_apk_expansion directory systems for a .jar file (not knowing what .jar is but sensing it might be useful) but did not find any. Rather than give up at this point (the logical thing to do) I moved all of the play_licensing and play_apk_expansion programs, subroutines and associated stuff into my App. After a day of changing include statements I was able to get everything to compile.
It was not exactly clear to me how to link all of this stuff into my program but I made a guess that things should work if I made Google's SampleDownloaderActivity my start-up program and just added my simple start-up stuff to their sample program. The App now ran on my development system.
To test it with Google-Play I payed my $25 and filled out lots of paper work and eventually was able to upload my App. When it ran it crashed. A day later I realized that I had not uploaded my .obb file. There does not appear to be any way to upload a .obb file without also uploading the App and you can't upload an App without rolling the version number. Just a note, here, on rolling the version number. The version number that is an integer must stay an integer. If you make it something like 1.0001 the development system crashes somewhere without giving you a reasonable diagnostic message. And if you are using the Development Studio the version number is not in the "manifests" as the documentation states but in the "build.gradle (Module:app)" file. Right after uploading a new App you upload your .obb file, which (I think) must have the same version number as the App. So get the version number of your App put into every place in your program that you reference your .obb file.
Having uploaded my App and .obb file with the proper version numbers everywhere I find that my App runs from the development system but always crashes when it is downloaded from Google-Play. It may be necessary to remove your development version before downloading. One time, and I have no idea why, Google-Play downloaded both the App and the .obb file. It still crashed. The message is always "I'm sorry, your program stopped. OK?" It seems to crash in Google's library programs.
At this point I am at a loss on how to debug Google's software. The fault is obviously mine. Yet, it would be nice to get a message that tells me what I have done wrong. Google Play seems to have given up on downloading my App but that might be because I need to keep uploading new versions and waiting a day before they will download to my Nexus5.
My conclusion, after spending a couple months on developing this App, is that I am throwing in the towel. It makes no sense to me to be developing downloading programs and file systems to manage data when what I want to do is develop an App. Furthermore, Google's policy of having great gobs of Apps that contain buggy downloading software is stupid. Hopefully, someone at Google will get their Google-Play store so that it can reliably download the Apps that people write.
Perhaps someone can quickly see what I have done wrong (other than the obvious, which is to have wasted my time making an Android App). Suggestions on how to proceed with debugging this mess would also be helpful. Sorry for showing that I am a bit unhappy.