jclemens, I really appreciate your help and I am very glad it is you I'm working with on this. I can see where a less experienced user would have been lost.
Ok, I did a lot of work on the RuntimeDemo and posted a new version above. I think I found why the data was not being extracted to the sdcard. I believe, if you look on the devices where the data did not extract, you will find that the data.zip file is in the data dir but did not unzip. This should be fixed.
Again you will need to copy AutoRun.java and res/values/strings.xml to your project. Make sure the package name at the top of AutoRun.java matches the package name in the manifest. Once you get everything setup ready to compile, click on the project, then go to the project menu at the top of the screen and select clean. Then clean your project.
Once you reinstall the apk on your devices, make sure all the permissions you declared in the manifest show up during install and when you look at the app in settings. Setting the permissions correctly is REQUIRED by Googles terms of service. BasicRuntime.apk declares all the correct permissions, and it is the app that really uses them. Since the app you create does not actually do the work, it would not look right to the user if you did not declare all the permissions you use in the runtime. Google might consider this a security loophole which might lead to the downfall of the Basic runtime.
I also added a feature where the data will be re-extracted if the version number changes. The version number is set at the top of the AndroidManifest.xml file. This would be necessary if your data files changed after an update.
To enable this feature, add a file name to the following line.
private static final String VERSION_CODE_FILE = "current_version.dat";
Then any time the you change the version number in the manifest your data will be re-extracted.
In your case, since you just have data and sound files which prob won't change, you can leave it null and the feature will not be used.
private static final String VERSION_CODE_FILE = null;
If you need to update your data files later you can set a current version file name then and the data will update.