Context :
Xamarin.Android in VS2019 - Target : Android 9.0 (API 28)
- App using AndroidX.AppCompat.App
- App deployed to a Samsung SM-G935F (Android 8.0 - API 26
). Linking is set to SDK Assemblies only
. DEX compiler is set to dx
.
Dotfuscator Community (VS 2019) 5.44.0
integrated using the [official guide] (https://www.preemptive.com/dotfuscator/ce/docs/help/getting_started_xamarin.html).
So at the end of .csproj
file is added the following :
<PropertyGroup>
<DotfuscatorXamarinConfigFileName>DotfuscatorConfig.xml</DotfuscatorXamarinConfigFileName>
<DotfuscatorXamarinCliPath>E:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe</DotfuscatorXamarinCliPath>
<DotfuscatorXamarinGenerateNewConfigFile>true</DotfuscatorXamarinGenerateNewConfigFile>
<!-- Enable Dotfuscator for Release -->
<DotfuscatorXamarinEnabled Condition="'$(Configuration)' == 'Release'">true</DotfuscatorXamarinEnabled>
<!-- Enable Dotfuscator for Ad-Hoc (only needed for iOS) -->
<DotfuscatorXamarinEnabled Condition="'$(Configuration)' == 'Ad-Hoc'">true</DotfuscatorXamarinEnabled>
<!-- Enable Dotfuscator for AppStore (only needed for iOS) -->
<DotfuscatorXamarinEnabled Condition="'$(Configuration)' == 'AppStore'">true</DotfuscatorXamarinEnabled>
</PropertyGroup>
<Import Project=PATH TO PreEmptive.Dotfuscator.Xamarin.Targets/>
Problem :
App launches fine in release build with either code shrinker r8 or dotfuscator but not with both ("App has stopped" at launch). Is it a known issue ?
Each time I change project configuration (r8 alone, dotfuscator alone or both), I do a clean, delete obj
and bin
folder and rebuild
. (Each time, I have to relaunch VS2019 3 times before Samsung device finally appears, it was not complicated enough).
Output Window only shows the following :
Start debugging Android application ...
Android application is running (debug is disabled in android project properties).
I can't figure out how to enable debug for release mode (ticking "Enable developper instrumentation" does not change anything) to get more information.
An error appear in the logcat when the app crashes (so only with both r8 and dotfuscator) :
java.lang.ClassNotFoundException: Didn't find class "androidx.appcompat.widget.FitWindowsLinearLayout" ...
Xamarin log is as follow :
Xamarin.VisualStudio.TastyPackage|Information|0|Hooked up SDB tracing adapter
Xamarin.VisualStudio.TastyPackage|Information|0|Initialization finished
Xamarin|Information|0|Xamarin - 16.6.000.1064-d16-6+b03f31e
Xamarin.VisualStudio.TastyPackage|Information|0|Hooked up SDB tracing adapter
Xamarin.VisualStudio.TastyPackage|Information|0|Initialization finished
Xamarin.VisualStudio.Android.XamarinAndroidPackage|Warning|0|Initializing Xamarin.VisualStudio.Android.XamarinAndroidPackage
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: processing AndroidStarted event
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: verify mustCheckIfSolutionIsReady:True delay:00:00:02
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: verify canceled => solution is not ready
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: processing ActiveProjectConfigurationChanged event
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: verify mustCheckIfSolutionIsReady:True delay:00:00:02
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: verify canceled => solution is not ready
Xamarin.HotReload|Information|0|2020-07-23 03:54:54.1 Hot Reload IDE Extension Loaded
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: verify android sdk installed
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: removing android sdk errors
Xamarin.VisualStudio.ProjectSystem.PackageServices|Warning|0|Failed to Restore Nuget packages for project (CSPROJ PATH).
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: verify error:
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: processing ManifestChanged event
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: verify android sdk installed
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: removing android sdk errors
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: verify error:
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: processing ManifestChanged event
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: verify android sdk installed
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: removing android sdk errors
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: processing ManifestChanged event
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: verify android sdk installed
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: removing android sdk errors
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: verify error:
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: verify error:
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: processing ManifestChanged event
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: verify android sdk installed
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: removing android sdk errors
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: verify error:
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: processing ManifestChanged event
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: verify android sdk installed
Xamarin.VisualStudio.Android.Setup.AndroidSdkValidation|Information|0|androidsdksetup: removing android sdk errors
Xamarin.VisualStudio.Android.Setup.AndroidSdkSetup|Information|0|androidsdksetup: verify error: