You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After #4966 is merged, builds that attempt to use AndroidAotMode=Hybrid in combination with AndroidSupportedAbis=armeabi-v7a will intentionally fail on a build error to provide a better user experience compared to letting the apps abort on a SIGSEGV (#1218). This error is useful right now, but if hybrid AOT becomes compatible with armeabi-v7a in the future, the error should be removed.
Expected behavior
One way to alert the team if hybrid AOT becomes compatible with armeabi-v7a would be to add a test for it. The problem is that the test needs to run on an armeabi-v7a environment. In the past there were some AOT tests that ran on hardware ARM devices, but those are now deprecated (https://github.com/xamarin/QualityAssurance/commit/62d40bfb933d1ac0af27cf33311c837c4c3efbbc) in favor of tests that can run on emulator.
So if the MSBuildDeviceIntegration test suite is expanded to run tests on ARM emulators in the future, then it would be useful to add a test like the following to the test suite:
[Test]publicvoidAndroidAotModeHybridAbortsOnArmeabiV7a(){AssertHasDevices();varproj=newXamarinAndroidApplicationProject(){IsRelease=true,AotAssemblies=true,};proj.SetProperty("AndroidAotMode","Hybrid");proj.SetAndroidSupportedAbis("armeabi-v7a");proj.SetProperty("_AndroidAotModeValidateAbi","false");builder=CreateApkBuilder();builder.Install(proj);ClearAdbLogcat();if(CommercialBuildAvailable)Assert.True(builder.RunTarget(proj,"_Run"),"Project should have run.");elseAdbStartActivity($"{proj.PackageName}/{proj.JavaPackageName}.MainActivity");varlogcatPath=Path.Combine(Root,builder.ProjectDirectory,"crash-logcat.log");Assert.IsTrue(MonitorAdbLogcat((line)=>{returnline.Contains($"Force finishing activity {proj.PackageName}");},logcatPath,30),"Application did not abort within 30 seconds.");}
Other notes
If support for armeabi-v7a is deprecated before the test suite runs tests on ARM emulators, then this issue should be closed as no longer applicable, and the error from #4966 can be removed.
Similarly, if it turns out that .NET 6 resolves the issue with hybrid AOT or makes larger changes to AOT that make the whole problem obsolete, the issue should be closed, and the error from #4966 can be adjusted so that it only applies to pre-.NET 6 Xamarin.Android projects.
The text was updated successfully, but these errors were encountered:
Context: #4966
After #4966 is merged, builds that attempt to use
AndroidAotMode
=Hybrid
in combination withAndroidSupportedAbis
=armeabi-v7a
will intentionally fail on a build error to provide a better user experience compared to letting the apps abort on a SIGSEGV (#1218). This error is useful right now, but if hybrid AOT becomes compatible with armeabi-v7a in the future, the error should be removed.Expected behavior
One way to alert the team if hybrid AOT becomes compatible with armeabi-v7a would be to add a test for it. The problem is that the test needs to run on an armeabi-v7a environment. In the past there were some AOT tests that ran on hardware ARM devices, but those are now deprecated (https://github.com/xamarin/QualityAssurance/commit/62d40bfb933d1ac0af27cf33311c837c4c3efbbc) in favor of tests that can run on emulator.
So if the MSBuildDeviceIntegration test suite is expanded to run tests on ARM emulators in the future, then it would be useful to add a test like the following to the test suite:
Other notes
If support for armeabi-v7a is deprecated before the test suite runs tests on ARM emulators, then this issue should be closed as no longer applicable, and the error from #4966 can be removed.
Similarly, if it turns out that .NET 6 resolves the issue with hybrid AOT or makes larger changes to AOT that make the whole problem obsolete, the issue should be closed, and the error from #4966 can be adjusted so that it only applies to pre-.NET 6 Xamarin.Android projects.
The text was updated successfully, but these errors were encountered: