问题
Everything works in Debug Mode but Crashes in Release Mode. What required permissions are available in Debug Mode that are not turned on in Release mode?
EDIT
When I set Linking to None, I get past the first screen to my Login screen. However, when I added the Release permission Internet
, the first time it tries to read a remote Entity Framework Core Table it crashes.
EDIT 2
In Release Mode, if I check Use Shared Runtime
, the app runs fine.
EDIT 3
I have turned on Debugging while in Release mode Temporarily. The Following line throws a System.TypeInitializationException only in Release Mode:
if (_context.bma_users.Any(p => p.username == _name.Text) && _name.Text != string.Empty)
回答1:
Assuming you have Android Studio and no crash report service implemented (Firebase, Crashlytics, etc...)
You might want to see the crash log print first:
- Open the Logcat in Android Studio.
- Change
Log Level
toError
. - Make sure USB debugging is enabled on your device.
- Connect your device to the computer.
- Make the app crash and see what it prints.
If you can't reproduce:
Next time it crashes, connect the device and do the same as above. Usually the log history will be available to view, scroll until you find the crash :)
Look for FATAL EXCEPTION
- Keep in mind - using the Logcat search bar can clear the log history, in most cases you can reconnect your device to view it again.
回答2:
You already assume "permission", not sure why...
The first thing I disable when I have something crashing only in release mode is minify (aka ProGuard). So disable the obfuscation, build again and try to see if you still get crashes. If not, reenable proguard one line at a time to pinpoint the cause.
回答3:
The answer was to set Additional supported encodings
to West
in the Android Options
screen under Project Properties
. It doesn't seem related but I was trying every possible combination and this finally worked.
回答4:
You can just set debuggable: true
for your release
build type.
Don't forget to remove this property once you're done with debugging.
回答5:
You can use any of the crashlytics tools like Firebase Analytics, Fabric, Splunk Mint to get the exact crash log
回答6:
Go to the properties of the android section and then into the Android options tab.
Make sure that the "Use Shared Runtime" and "Use Fast Deployment" boxes are unticked in your release configuration
回答7:
Use FCM and fabric for crashlatics, they provide everything in crash report even line number of code where your app is getting crash. Use this and happy
来源:https://stackoverflow.com/questions/51843796/how-do-i-debug-an-android-app-that-crashes-only-in-release-mode