Android Signed APK showing incomplete
I have signed the application using Eclipse's Export Wizard. When I published this, users started complaining that the application is behaving incorrectly. (Basically, the APK did not have necessary images & audio and hence showing incorrect behaviour).
Some information on Application and Signing which I have tried.
- I have a lite version and paid version. Both are signed with same keypair. The lite version is working perfectly and full version is giving error.
- I have tried to export the signed packages again and tried to install directly in device (instead of uploading to market). Same behav开发者_如何学Ciour (i.e Lite apps works correctly and full version not proper)
- Both Full Version and Lite Version uses shared Library (Code base is identical. Differences as follows.
- Full Version has 5 times the resources of lite version. The lite version apk is ~2.6MB and full version is ~10.4MB. In Full Version I have 170 images (mostly png's of 5-10 KB) and ~55mp3 files. In Lite Version I have 45 images and 15 mp3s
- Full Version has LVL (License Verification) implemented and Lite Version doesnot. Once LVL is passed, the code simply calls the Library Class
- If I use Eclipse to build and deploy full version to phone (or emulator), it works correctly. (I guess this build and deploy will use debug key for signing)
- I have error handling within the code to show code to show a dummypic (a question mark) if resource is missing. All my images are replaced with that question mark. Just to add.. This dummypic is in the Library and all other resources(images) are in Full Version.
- I have checked the resources by renaming the signed apk file to .zip (thanks to NickT for suggesting this approach). All resource files (audio and images) are present in the zip file.
Any help is appreciated. The application is already in market and hence would like to minimise adverse impact.
Removed LVL. Still same error
Tried commenting the LVL code and directly calling the intent. Still same error. By commenting the LVL, the code base for Lite and Full Version is identical. Only the resouce count is different. The full version has all the resources of Lite Version + ~5times the resource.
Update This is how I temporarily fixed it. I removed the library project and moved all classes and resources to the Implementation Project (Full Version). Now it is working.
As said, this is a temp fix only. I still need to know how I can fix this with library. Else I will have to create a lot of duplication of code.
My bet would be that it has to do with permissions. The app that is being installed first, will have read-write permissions to that folder, the other will not.
Try using a ContentProvider to make your images accesible for both apps!
The sign shouldn't affect your code. I think the problem must be in the source code of Paid version.
Do you test in emulator? from eclipse? You can test the signed apk in emulator too through "adb install application-signed.apk".
I think you should uninstall and then re-install app, it happens sometimes, when your phone already has the application and you install it again with different resources and files without uninstalling(but overriding), it gives odd behavior, try uninstall and then re-install should work for you.
I am not sure but i think no two apps of the same package name can co exist in a single device. try installing the apps in two different devices.
Two suggestions:
1) Do you have proguard enabled? If yes, try disabling it and test. If it works, you might need to update your proguard.cfg (probably with some -keep public class)
2) Delete your R.java manually and recompile your full version only!
I encountered this problem with Android projects using other Android Library
projects. It looks like the AAPT (or an eclipse ADT part) sometimes fails when creating the R-file ids (So the resources are present, but the id's are not correct).
What quickly fixed the issue for me: Close the "master" project and reopen it having the Build Automatically
option set or make a clean&rebuild on this project. The next exported APK shouldn't have the resources-not-found issue.
Maybe you let a debug flag into the Manifest file ?
精彩评论