The symptom that it works when set "Fast Deployment" suggests this situation:
If you are testing a release build on a device that previously had a debug build, its possible that the debug version did not get fully uninstalled. Specifically, "Fast Deployment" stores the xamarin library as a separate DLL. Because your release build has the same "bundle id" as the debug build, Android can get confused.
To fix.
Best Fix for emulator:
- Tools / Android Device Manager / Select virtual device / Edit / Clear to Factory Defaults.
Quickest fix for phone (but not sure if it helps):
- Drag app to trash can.
- Power down the phone. Power it back on.
- Deploy release build to device. Either by installing apk, or by "Start Without Debugging" menu item.
Quick Fix:
- Run debug version again on the device. This makes sure Android "knows" that the debug version of app is there.
- Stop the app.
- On the device, "uninstall" the app. (Drag it to trash can).
- Deploy release build to device. Either by installing apk, or by "Start Without Debugging" menu item.
If that doesn't work, then use "adb uninstall":
- Run debug version again on the device. This makes sure Android "knows" that the debug version of app is there.
- Stop the app.
- menu Tools / Android / Android Adb Command Prompt.
- adb uninstall com.companyname.appname <-- substitute your app's bundle id
- deploy release build to device.