Recently, when trying one of my apps that uses a SyncAdapter out on the new Jelly Bean emulator, I got the following exception:
java.lang.IllegalStateException: Already released
I apparently made the error of releasing the
ContentProviderClient passed in
onPerformSync() by calling
provider.release();.at the end. While this would seem to me to be good practice, and Android didn’t complain up to Jelly Bean, this now throws an exception and causes havoc with random background crashes.
So to sum up: Don’t release() the ContentProviderClient when your SyncAdapter has finished