diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/Proguard.cs b/src/Xamarin.Android.Build.Tasks/Tasks/Proguard.cs index c9152c75258..58963235d51 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/Proguard.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/Proguard.cs @@ -130,9 +130,10 @@ protected override string GenerateCommandLineCommands () var classesZip = Path.Combine (ClassesOutputDirectory, "..", "classes.zip"); var acwLines = File.ReadAllLines (AcwMapFile); using (var appcfg = File.CreateText (ProguardGeneratedApplicationConfiguration)) - for (int i = 0; i + 3 < acwLines.Length; i += 4) + for (int i = 0; i + 2 < acwLines.Length; i += 3) try { - var java = acwLines [i + 3].Substring (acwLines [i + 3].IndexOf (';') + 1); + var line = acwLines [i + 2]; + var java = line.Substring (line.IndexOf (';') + 1); appcfg.WriteLine ("-keep class " + java + " { *; }"); } catch { // skip invalid lines diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs index 1202202f0d6..e271fda2db1 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs @@ -450,6 +450,12 @@ public void BuildProguardEnabledProject (bool isRelease, bool enableProguard, bo var proj = new XamarinAndroidApplicationProject () { IsRelease = isRelease, EnableProguard = enableProguard, UseLatestPlatformSdk = useLatestSdk, TargetFrameworkVersion = useLatestSdk ? "v7.1" : "v5.0" }; using (var b = CreateApkBuilder (Path.Combine ("temp", $"BuildProguard Enabled Project(1){isRelease}{enableProguard}{useLatestSdk}"))) { Assert.IsTrue (b.Build (proj), "Build should have succeeded."); + + if (isRelease && enableProguard) { + var proguardProjectPrimary = Path.Combine (Root, b.ProjectDirectory, proj.IntermediateOutputPath, "proguard", "proguard_project_primary.cfg"); + FileAssert.Exists (proguardProjectPrimary); + StringAssertEx.ContainsText (File.ReadAllLines (proguardProjectPrimary), "-keep class md52d9cf6333b8e95e8683a477bc589eda5.MainActivity"); + } } }