Skip to content

Add Android Bionic Library build support#3217

Merged
mattleibow merged 71 commits intomono:mainfrom
4Darmygeometry:main
Apr 14, 2026
Merged

Add Android Bionic Library build support#3217
mattleibow merged 71 commits intomono:mainfrom
4Darmygeometry:main

Conversation

@4Darmygeometry
Copy link
Copy Markdown
Contributor

@4Darmygeometry 4Darmygeometry commented Mar 26, 2025

Description of Change

Add Android Bionic Library build support. Bionic is the Linux library which used by Android.

Support AArch64 and X64 architecture, Android 10+.

Bugs Fixed

API Changes

Add Android API reference from https://github.com/OmniSharp/omnisharp-roslyn/pull/2653/files , Android NDK and Android ABI docs.

Behavioral Changes

None.

Required skia PR

None.

PR Checklist

  • Has tests (if omitted, state reason in description)
  • Rebased on top of main at time of PR
  • Merged related skia PRs
  • Changes adhere to coding standard
  • Updated documentation

@aicynide
Copy link
Copy Markdown

Thank you senpai

@4Darmygeometry 4Darmygeometry marked this pull request as ready for review February 12, 2026 14:21
@4Darmygeometry
Copy link
Copy Markdown
Contributor Author

@mattleibow fontconfig for loong64 only in 2.17.1-5, not 2.17.1-4.

@4Darmygeometry
Copy link
Copy Markdown
Contributor Author

@mattleibow fontconfig for loong64 only in 2.17.1-5, not 2.17.1-4.

https://ftp.debian.org/debian/pool/main/f/fontconfig/

Delete directory to solve conflict
Delete directory to solve conflict
Delete directory to solve conflict
@4Darmygeometry
Copy link
Copy Markdown
Contributor Author

bionic build error:

========================================
libSkiaSharp
========================================
Done. Made 100 targets from 57 files in 183ms
ninja: Entering directory `out/bionic/arm64'
[1/1413] compile ../../../third_party/externals/zlib/adler32_simd.c
[2/1413] compile ../../../third_party/externals/zlib/crc32_simd.c
[3/1413] compile ../../../third_party/externals/zlib/contrib/optimizations/inffast_chunk.c
[4/1413] compile ../../../third_party/externals/zlib/adler32.c
[5/1413] compile ../../../third_party/externals/zlib/compress.c
[6/1413] compile ../../../third_party/externals/zlib/cpu_features.c
[7/1413] compile ../../../third_party/externals/zlib/crc32.c
[8/1413] compile ../../../third_party/externals/zlib/gzclose.c
[9/1413] compile ../../../third_party/externals/zlib/gzlib.c
[10/1413] compile ../../../third_party/externals/zlib/deflate.c
[11/1413] compile ../../../third_party/externals/zlib/contrib/optimizations/inflate.c
[12/1413] compile ../../../third_party/externals/zlib/gzread.c
[13/1413] compile ../../../third_party/externals/zlib/gzwrite.c
[14/1413] compile ../../../third_party/externals/zlib/infback.c
[15/1413] compile ../../../third_party/externals/zlib/inffast.c
[16/1413] compile ../../../third_party/externals/zlib/inftrees.c
[17/1413] compile ../../../third_party/externals/zlib/uncompr.c
[18/1413] stamp obj/third_party/zlib/zlib_adler32_simd.stamp
[19/1413] stamp obj/third_party/zlib/zlib_crc32_simd.stamp
[20/1413] stamp obj/third_party/zlib/zlib_inflate_chunk_simd.stamp
[21/1413] stamp obj/third_party/zlib/zlib_x86_x64_simd.stamp
[22/1413] compile ../../../third_party/externals/zlib/zutil.c
[23/1413] compile ../../../third_party/externals/zlib/trees.c
[24/1413] compile ../../../third_party/externals/libpng/pngerror.c
[25/1413] compile ../../../third_party/externals/libpng/pngmem.c
[26/1413] compile ../../../third_party/externals/libpng/pngget.c
[27/1413] compile ../../../third_party/externals/libpng/pngpread.c
[28/1413] compile ../../../third_party/externals/libpng/png.c
[29/1413] compile ../../../third_party/externals/libpng/pngrio.c
[30/1413] compile ../../../third_party/externals/libpng/pngread.c
[31/1413] compile ../../../third_party/externals/libpng/pngset.c
[32/1413] compile ../../../third_party/externals/libpng/pngrutil.c
[33/1413] compile ../../../third_party/externals/libpng/pngwio.c
[34/1413] compile ../../../third_party/externals/libpng/pngtrans.c
[35/1413] compile ../../../third_party/externals/libpng/pngwtran.c
[36/1413] compile ../../../third_party/externals/libpng/pngrtran.c
[37/1413] compile ../../../third_party/externals/libpng/arm/arm_init.c
[38/1413] compile ../../../third_party/externals/libpng/pngwrite.c
[39/1413] compile ../../../third_party/externals/libpng/arm/filter_neon_intrinsics.c
[40/1413] link libzlib.a
FAILED: libzlib.a 
python3 "/work/externals/skia/gn/rm.py" "libzlib.a" && ar rcs libzlib.a @libzlib.a.rsp
/bin/sh: 1: ar: not found
[41/1413] compile ../../../third_party/externals/libpng/arm/palette_neon_intrinsics.c
[42/1413] compile ../../../third_party/externals/libpng/pngwutil.c
ninja: build stopped: subcommand failed.
An error occurred when executing task 'libSkiaSharp'.
Error: Process 'python3' failed with error: 1
An error occurred when executing task 'externals-linux'.
Error: .NET CLI: Process returned an error (exit code 1).

##[error]Bash exited with code '1'.

see:https://dev.azure.com/xamarin/public/_build/results?buildId=156659&view=results
Screenshot_2026-04-11-07-08-49-641_com.mmbox.xbrowser.pro.jpg

@4Darmygeometry
Copy link
Copy Markdown
Contributor Author

Also, build error in x64:

========================================
libSkiaSharp
========================================
Done. Made 100 targets from 57 files in 346ms
ninja: Entering directory `out/bionic/x64'
[1/1403] compile ../../../third_party/externals/zlib/adler32_simd.c
[2/1403] compile ../../../third_party/externals/zlib/crc32_simd.c
[3/1403] compile ../../../third_party/externals/zlib/contrib/optimizations/inffast_chunk.c
[4/1403] compile ../../../third_party/externals/zlib/adler32.c
[5/1403] compile ../../../third_party/externals/zlib/crc_folding.c
[6/1403] compile ../../../third_party/externals/zlib/compress.c
[7/1403] compile ../../../third_party/externals/zlib/cpu_features.c
[8/1403] compile ../../../third_party/externals/zlib/crc32.c
[9/1403] compile ../../../third_party/externals/zlib/gzclose.c
[10/1403] compile ../../../third_party/externals/zlib/contrib/optimizations/inflate.c
[11/1403] compile ../../../third_party/externals/zlib/gzlib.c
[12/1403] compile ../../../third_party/externals/zlib/gzread.c
[13/1403] compile ../../../third_party/externals/zlib/gzwrite.c
[14/1403] compile ../../../third_party/externals/zlib/infback.c
[15/1403] compile ../../../third_party/externals/zlib/deflate.c
[16/1403] compile ../../../third_party/externals/zlib/inftrees.c
[17/1403] compile ../../../third_party/externals/zlib/uncompr.c
[18/1403] compile ../../../third_party/externals/zlib/zutil.c
[19/1403] compile ../../../third_party/externals/zlib/inffast.c
[20/1403] stamp obj/third_party/zlib/zlib_adler32_simd.stamp
[21/1403] stamp obj/third_party/zlib/zlib_crc32_simd.stamp
[22/1403] stamp obj/third_party/zlib/zlib_inflate_chunk_simd.stamp
[23/1403] stamp obj/third_party/zlib/zlib_x86_x64_simd.stamp
[24/1403] compile ../../../third_party/externals/libpng/pngerror.c
[25/1403] compile ../../../third_party/externals/zlib/trees.c
[26/1403] compile ../../../third_party/externals/libpng/pngmem.c
[27/1403] compile ../../../third_party/externals/libpng/png.c
[28/1403] compile ../../../third_party/externals/libpng/pngget.c
[29/1403] compile ../../../third_party/externals/libpng/pngrio.c
[30/1403] compile ../../../third_party/externals/libpng/pngpread.c
[31/1403] compile ../../../third_party/externals/libpng/pngread.c
[32/1403] compile ../../../third_party/externals/libpng/pngrutil.c
[33/1403] compile ../../../third_party/externals/libpng/pngset.c
[34/1403] compile ../../../third_party/externals/libpng/pngwio.c
[35/1403] compile ../../../third_party/externals/libpng/pngtrans.c
[36/1403] compile ../../../third_party/externals/libpng/pngwtran.c
[37/1403] compile ../../../third_party/externals/libpng/pngrtran.c
[38/1403] compile ../../../third_party/externals/libpng/pngwrite.c
[39/1403] compile ../../../third_party/externals/libpng/intel/intel_init.c
[40/1403] link libzlib.a
FAILED: libzlib.a 
python3 "/work/externals/skia/gn/rm.py" "libzlib.a" && ar rcs libzlib.a @libzlib.a.rsp
/bin/sh: 1: ar: not found
[41/1403] compile ../../../third_party/externals/libpng/intel/filter_sse2_intrinsics.c
[42/1403] compile ../../../third_party/externals/libpng/pngwutil.c
ninja: build stopped: subcommand failed.
An error occurred when executing task 'libSkiaSharp'.
Error: Process 'python3' failed with error: 1
An error occurred when executing task 'externals-linux'.
Error: .NET CLI: Process returned an error (exit code 1).

##[error]Bash exited with code '1'.

4Darmygeometry and others added 4 commits April 11, 2026 07:29
build-essential contains binutils, which have ar
Android NDK r22+ use llvm-ar by default
so have ar not found error
- reuse the same bionic binaries in the NoDependencies package
- keep the bionic helper aligned with fontconfig-free verification
- preserve Apple Silicon local Docker builds with linux/amd64

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@azure-pipelines
Copy link
Copy Markdown

No pipelines are associated with this pull request.

@mattleibow mattleibow requested a review from Copilot April 11, 2026 00:23
mattleibow
mattleibow previously approved these changes Apr 11, 2026
@mattleibow
Copy link
Copy Markdown
Collaborator

Lets see! I had to use the MCR images as that is what is allowed on the release builds - and also I fixed this for macOS ARM. The yaml was building the same thing twice, so I move the bionic into a separate native step

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.

Comment on lines +42 to +46
# Install the .NET SDK
ARG DOTNET_SDK_VERSION=10.0
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
RUN curl https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.sh -L -o dotnet-install.sh \
&& bash dotnet-install.sh --channel ${DOTNET_SDK_VERSION} --install-dir /usr/share/dotnet --verbose \
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default DOTNET_SDK_VERSION here is 10.0, but the other Linux build Docker images in this repo default to 10.0.1xx (e.g., scripts/Docker/alpine/Dockerfile:62, scripts/Docker/debian/10/Dockerfile:81, scripts/Docker/debian/13/Dockerfile:85). Using a different channel can make CI and local builds non-reproducible (different SDK feature bands) and can change restore/build behavior. Consider aligning the default to 10.0.1xx (or document why this image should intentionally use a different channel).

Copilot uses AI. Check for mistakes.
Comment on lines +33 to +35
<!-- Bionic -->
<PackageFile Include="..\..\output\native\bionic\x64\libSkiaSharp*.so" PackagePath="runtimes\linux-bionic-x64\native\%(Filename)%(Extension)" />
<PackageFile Include="..\..\output\native\bionic\arm64\libSkiaSharp*.so" PackagePath="runtimes\linux-bionic-arm64\native\%(Filename)%(Extension)" />
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These new bionic assets are being added to the NoDependencies package, but this project’s PackageNotes currently enumerates glibc loader/libs (e.g., ld-linux-x86-64.so.2, libc.so.6) as the “complete dependency list”. That note will be incorrect for linux-bionic-* runtimes (which don’t use glibc). Please update the package notes to either describe bionic separately or avoid listing glibc-specific dependencies when bionic assets are included.

Copilot uses AI. Check for mistakes.
Comment on lines +43 to +55
- template: /scripts/azure-templates-jobs-linux-matrix.yml@self # Build Native Linux (Bionic)
parameters:
buildExternals: ${{ parameters.buildExternals }}
buildAgent: ${{ parameters.buildAgentLinuxNative }}
use1ESPipelineTemplates: ${{ parameters.use1ESPipelineTemplates }}
builds:
- name: ''
additionalArgs: --verifyExcluded=fontconfig
matrix:
- ${{ each arch in split('arm64,x64', ',') }}:
- arch: ${{ arch }}
variant: bionic
docker: scripts/Docker/bionic
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR description says it adds Android API/reference docs (OmniSharp PR + NDK/ABI docs), but the actual changes in this PR appear to be build/packaging/pipeline updates only (no doc file updates shown). Please either update the PR description’s “API Changes” section to match the change set, or include the intended documentation updates in this PR.

Copilot uses AI. Check for mistakes.
UpdateDocs.cake have warming:
/work/scripts/cake/UpdateDocs.cake(60,16): warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
but this method is not async
@azure-pipelines
Copy link
Copy Markdown

No pipelines are associated with this pull request.

@4Darmygeometry
Copy link
Copy Markdown
Contributor Author

@4Darmygeometry
Copy link
Copy Markdown
Contributor Author

Android test error:

========================================
Default
========================================
Test App: /home/vsts/work/1/s/tests/SkiaSharp.Tests.Devices/bin/Release/net10.0-android36.0/android-x64/com.companyname.SkiaSharpTests-Signed.apk
Test App Package Name: com.companyname.SkiaSharpTests
Test App Instrumentation: devicerunners.xharness.maui.XHarnessInstrumentation
Test Results Directory: /home/vsts/work/1/s/output/logs/testlogs/SkiaSharp.Tests.Devices.Android/20260411_051422
[11.0.0-prerelease.26107.1+bfbac237157e59cdbd19334325b2af80bd6e9828] XHarness command issued: android test --app=/home/vsts/work/1/s/tests/SkiaSharp.Tests.Devices/bin/Release/net10.0-android36.0/android-x64/com.companyname.SkiaSharpTests-Signed.apk --package-name=com.companyname.SkiaSharpTests --instrumentation=devicerunners.xharness.maui.XHarnessInstrumentation --output-directory=/home/vsts/work/1/s/output/logs/testlogs/SkiaSharp.Tests.Devices.Android/20260411_051422 --timeout=00:15:00 --launch-timeout=00:05:00 --verbosity=Debug
dbug: ADBRunner using ADB.exe supplied from /home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/tools/net10.0/any/../../../runtimes/any/native/adb/linux/adb
dbug: Full resolved path:'/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb'
info: Will attempt to find device supporting architectures: 'x86_64'
dbug: Executing command: '/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb start-server'
dbug: 
info: Finding attached devices/emulators...
dbug: Executing command: '/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb devices -l'
dbug: No attached devices found
      Exit code: 0
      Std out:
      List of devices attached
dbug: Attempt 1 failed, retrying in 10 seconds...
dbug: Executing command: '/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb devices -l'
dbug: No attached devices found
      Exit code: 0
      Std out:
      List of devices attached
dbug: Attempt 2 failed, retrying in 10 seconds...
dbug: Executing command: '/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb devices -l'
dbug: No attached devices found
      Exit code: 0
      Std out:
      List of devices attached
dbug: Attempt 3 failed, retrying in 10 seconds...
dbug: Executing command: '/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb devices -l'
dbug: No attached devices found
      Exit code: 0
      Std out:
      List of devices attached
dbug: Attempt 4 failed, retrying in 10 seconds...
dbug: Executing command: '/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb devices -l'
dbug: No attached devices found
      Exit code: 0
      Std out:
      List of devices attached
dbug: Attempt 5 failed, retrying in 10 seconds...
dbug: Executing command: '/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb devices -l'
dbug: No attached devices found
      Exit code: 0
      Std out:
      List of devices attached
dbug: Attempt 6 failed, retrying in 10 seconds...
dbug: Executing command: '/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb devices -l'
dbug: No attached devices found
      Exit code: 0
      Std out:
      List of devices attached
dbug: Attempt 7 failed, retrying in 10 seconds...
dbug: Executing command: '/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb devices -l'
dbug: No attached devices found
      Exit code: 0
      Std out:
      List of devices attached
dbug: Attempt 8 failed, retrying in 10 seconds...
dbug: Executing command: '/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb devices -l'
dbug: No attached devices found
      Exit code: 0
      Std out:
      List of devices attached
dbug: Attempt 9 failed, retrying in 10 seconds...
dbug: Executing command: '/home/vsts/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/runtimes/any/native/adb/linux/adb devices -l'
dbug: No attached devices found
      Exit code: 0
      Std out:
      List of devices attached
dbug: All 9 retries of action failed
warn: No attached devices / emulators detected. Check that any emulators have been started, and attached device(s) are connected via USB, powered-on, unlocked and authorized.
dbug: No suitable devices found
crit: Failed to find compatible device: x86_64
XHarness exit code: 81 (DEVICE_NOT_FOUND)
An error occurred when executing task 'Default'.

----------------------------------------
TearDown
----------------------------------------
Error: .NET CLI: Process returned an error (exit code 81).
An error occurred when executing task 'tests-android'.
Error: .NET CLI: Process returned an error (exit code 81).

##[error]Bash exited with code '81'.

Screenshot_2026-04-11-13-58-34-249_com.mmbox.xbrowser.pro.jpg

Screenshot_2026-04-11-13-58-41-648_com.mmbox.xbrowser.pro.jpg

@4Darmygeometry
Copy link
Copy Markdown
Contributor Author

@mattleibow
.NET Framework Test also error:

xUnit.net Console Runner v2.4.2+f110e5bee5 (64-bit Desktop .NET 4.7.2, runtime: 4.0.30319.42000)
  Discovering: SkiaSharp.Direct3D.Tests
  Discovered:  SkiaSharp.Direct3D.Tests
  Starting:    SkiaSharp.Direct3D.Tests
    SkiaSharp.Direct3D.Tests.GRContextTest.GRContextIsNullWhenNoDirect3DContext [STARTING]
    SkiaSharp.Direct3D.Tests.GRContextTest.GRContextIsNullWhenNoDirect3DContext [FINISHED] Time: 0.0434568s
  Finished:    SkiaSharp.Direct3D.Tests
=== TEST EXECUTION SUMMARY ===
   SkiaSharp.Direct3D.Tests  Total: 1, Errors: 0, Failed: 0, Skipped: 0, Time: 0.139s
An error occurred when executing task 'tests-netfx'.
Error: There were 1 failed test runs.
##[error]PowerShell exited with code '1'.

https://dev.azure.com/xamarin/public/_build/results?buildId=156672&view=results
Screenshot_2026-04-11-14-21-46-583_com.mmbox.xbrowser.pro.jpg
Screenshot_2026-04-11-14-21-29-406_com.mmbox.xbrowser.pro.jpg

@4Darmygeometry
Copy link
Copy Markdown
Contributor Author

Linux test error:

  Linking for initial memory $(WasmInitialHeapSize)=33554432 bytes. Set this msbuild property to change the value.
  Linking with emcc with -O2. This may take a while ...
   /opt/hostedtoolcache/dotnet/packs/Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-x64/10.0.5/tools/bin/clang --version
   /opt/hostedtoolcache/dotnet/packs/Microsoft.NET.Runtime.Emscripten.3.1.56.Node.linux-x64/10.0.5/tools/bin/node /opt/hostedtoolcache/dotnet/packs/Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-x64/10.0.5/tools/emscripten/src/compiler.mjs /tmp/tmp8bwd2nlo.json --symbols-only
   /opt/hostedtoolcache/dotnet/packs/Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-x64/10.0.5/tools/bin/wasm-ld -o /home/vsts/work/1/s/output/samples/Gallery/Blazor/obj/Release/net10.0/wasm/for-build/dotnet.native.wasm /home/vsts/work/1/s/output/samples/Gallery/Blazor/obj/Release/net10.0/wasm/for-build/pinvoke.o /home/vsts/work/1/s/output/samples/Gallery/Blazor/obj/Release/net10.0/wasm/for-build/driver.o /home/vsts/work/1/s/output/samples/Gallery/Blazor/obj/Release/net10.0/wasm/for-build/corebindings.o /home/vsts/work/1/s/output/samples/Gallery/Blazor/obj/Release/net10.0/wasm/for-build/runtime.o /opt/hostedtoolcache/dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.browser-wasm/10.0.5/runtimes/browser-wasm/native/libbrotlicommon.a /opt/hostedtoolcache/dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.browser-wasm/10.0.5/runtimes/browser-wasm/native/libbrotlidec.a /opt/hostedtoolcache/dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.browser-wasm/10.0.5/runtimes/browser-wasm/native/libbrotlienc.a /opt/hostedtool...
   /opt/hostedtoolcache/dotnet/packs/Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-x64/10.0.5/tools/bin/llvm-objcopy /home/vsts/work/1/s/output/samples/Gallery/Blazor/obj/Release/net10.0/wasm/for-build/dotnet.native.wasm /home/vsts/work/1/s/output/samples/Gallery/Blazor/obj/Release/net10.0/wasm/for-build/dotnet.native.wasm --remove-section=producers
   /opt/hostedtoolcache/dotnet/packs/Microsoft.NET.Runtime.Emscripten.3.1.56.Node.linux-x64/10.0.5/tools/bin/node /opt/hostedtoolcache/dotnet/packs/Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-x64/10.0.5/tools/emscripten/src/compiler.mjs /tmp/tmpdq_00it7.json
   /opt/hostedtoolcache/dotnet/packs/Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-x64/10.0.5/tools/bin/wasm-opt --strip-target-features --post-emscripten -O2 --low-memory-unused --zero-filled-memory --pass-arg=directize-initial-contents-immutable /home/vsts/work/1/s/output/samples/Gallery/Blazor/obj/Release/net10.0/wasm/for-build/dotnet.native.wasm -o /home/vsts/work/1/s/output/samples/Gallery/Blazor/obj/Release/net10.0/wasm/for-build/dotnet.native.wasm -g --mvp-features --enable-bulk-memory --enable-exception-handling --enable-multivalue --enable-mutable-globals --enable-reference-types --enable-sign-ext --enable-simd
  SkiaSharpSample.Blazor -> /home/vsts/work/1/s/output/samples/Gallery/Blazor/bin/Release/net10.0/SkiaSharpSample.Blazor.dll
  SkiaSharpSample.Blazor (Blazor output) -> /home/vsts/work/1/s/output/samples/Gallery/Blazor/bin/Release/net10.0/wwwroot

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:41.77
An error occurred when executing task 'samples-run'.
Error: No space left on device

iOS test error:

========================================
Default
========================================
Test App: /Users/runner/work/1/s/tests/SkiaSharp.Tests.Devices/bin/Debug/net10.0-ios26.2/iossimulator-x64/SkiaSharp.Tests.Devices.app
Test Device: ios-simulator-64_26.2
Test Results Directory: /Users/runner/work/1/s/output/logs/testlogs/SkiaSharp.Tests.Devices.iOS/20260411_052109
[11.0.0-prerelease.26107.1+bfbac237157e59cdbd19334325b2af80bd6e9828] XHarness command issued: apple test --app=/Users/runner/work/1/s/tests/SkiaSharp.Tests.Devices/bin/Debug/net10.0-ios26.2/iossimulator-x64/SkiaSharp.Tests.Devices.app --targets=ios-simulator-64_26.2 --output-directory=/Users/runner/work/1/s/output/logs/testlogs/SkiaSharp.Tests.Devices.iOS/20260411_052109 --verbosity=Debug
info: Preparing run for ios-simulator-64_26.2
info: Looking for available ios-simulator-64_26.2 simulators..
dbug: Looking for available ios-simulator-64_26.2 simulators. Storing logs into list-ios-simulator-64_26.2-20260411_052901.log
info: Found simulator device 'iPhone 11 Pro (iOS 26.2) - created by XHarness'
info: Getting app bundle information from '/Users/runner/work/1/s/tests/SkiaSharp.Tests.Devices/bin/Debug/net10.0-ios26.2/iossimulator-x64/SkiaSharp.Tests.Devices.app'..
dbug: 
dbug: Running /usr/libexec/PlistBuddy
dbug: Process PlistBuddy exited with 0
dbug: 
dbug: Running /usr/libexec/PlistBuddy
dbug: Process PlistBuddy exited with 0
dbug: 
dbug: Running /usr/libexec/PlistBuddy
dbug: Process PlistBuddy exited with 0
dbug: 
dbug: Running /usr/libexec/PlistBuddy
dbug: Process PlistBuddy exited with 0
info: Uninstalling any previous instance of 'com.companyname.SkiaSharpTests' from 'iPhone 11 Pro (iOS 26.2) - created by XHarness'
dbug: 
dbug: Running /Applications/Xcode_26.2.app/Contents/Developer/usr/bin/simctl
dbug: An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=405):
dbug: Unable to lookup in current state: Shutdown
dbug: Process simctl exited with 149
dbug: Preemptive uninstallation of application failed
info: Installing application 'SkiaSharp.Tests.Devices' on 'iPhone 11 Pro (iOS 26.2) - created by XHarness'
dbug: Installing '/Users/runner/work/1/s/tests/SkiaSharp.Tests.Devices/bin/Debug/net10.0-ios26.2/iossimulator-x64/SkiaSharp.Tests.Devices.app' to 'iPhone 11 Pro (iOS 26.2) - created by XHarness' (128.90 MB)
dbug: 
dbug: Running /Users/runner/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/tools/net10.0/any/../../../runtimes/any/native/mlaunch/bin/mlaunch
dbug: Using Xcode 26.2 found in /Applications/Xcode_26.2.app
dbug: xcrun simctl list --json --json-output /var/folders/kk/699g20m50k56v2wnfvqxt3mm0000gn/T/tmpvCzFZM.tmp
dbug: Xamarin.Hosting: Booting iPhone 11 Pro (iOS 26.2) - created by XHarness...
dbug: Installing '/Users/runner/work/1/s/tests/SkiaSharp.Tests.Devices/bin/Debug/net10.0-ios26.2/iossimulator-x64/SkiaSharp.Tests.Devices.app' to 'iPhone 11 Pro (iOS 26.2) - created by XHarness' (128.90 MB)
dbug: 
dbug: Running /Users/runner/.nuget/packages/microsoft.dotnet.xharness.cli/11.0.0-prerelease.26107.1/tools/net10.0/any/../../../runtimes/any/native/mlaunch/bin/mlaunch
dbug: Using Xcode 26.2 found in /Applications/Xcode_26.2.app
dbug: xcrun simctl list --json --json-output /var/folders/kk/699g20m50k56v2wnfvqxt3mm0000gn/T/tmpvCzFZM.tmp
dbug: Xamarin.Hosting: Booting iPhone 11 Pro (iOS 26.2) - created by XHarness...
dbug: xcrun simctl list --json --json-output /var/folders/kk/699g20m50k56v2wnfvqxt3mm0000gn/T/tmpaP5ZEw.tmp
dbug: xcrun simctl boot 9F1B6028-72FB-45EA-872E-8C7D74A65AAE --disabledJob=com.apple.backboardd
dbug: xcrun simctl list --json --json-output /var/folders/kk/699g20m50k56v2wnfvqxt3mm0000gn/T/tmp8V8crH.tmp
dbug: Xamarin.Hosting: Booted iPhone 11 Pro (iOS 26.2) - created by XHarness successfully.
dbug: Xamarin.Hosting: Installing on iPhone 11 Pro (iOS 26.2) - created by XHarness (9F1B6028-72FB-45EA-872E-8C7D74A65AAE) by executing 'xcrun simctl install 9F1B6028-72FB-45EA-872E-8C7D74A65AAE /Users/runner/work/1/s/tests/SkiaSharp.Tests.Devices/bin/Debug/net10.0-ios26.2/iossimulator-x64/SkiaSharp.Tests.Devices.app'
fail: Cancelling the run after 300 seconds as application failed to launch in time
dbug: Killing process 80028 as it was cancelled
dbug: Process mlaunch exited with 137
dbug: Process 79918 already exited or busy: No process is associated with this object.
dbug: Killing process 79918 as it was cancelled
: System.OperationCanceledException: The operation was canceled.
         at System.Threading.CancellationToken.ThrowOperationCanceledException()
         at System.Threading.CancellationToken.ThrowIfCancellationRequested()
         at Microsoft.DotNet.XHarness.Apple.BaseOrchestrator.InstallApp(AppBundleInformation appBundleInfo, IDevice device, TestTargetOs target, CancellationToken cancellationToken) in /_/src/Microsoft.DotNet.XHarness.Apple/Orchestration/BaseOrchestrator.cs:line 393
         at Microsoft.DotNet.XHarness.Apple.BaseOrchestrator.OrchestrateOperationInternal(TestTargetOs target, String deviceName, Boolean includeWirelessDevices, Boolean resetSimulator, Boolean enableLldb, GetAppBundleInfoFunc getAppBundle, ExecuteMacCatalystAppFunc executeMacCatalystApp, ExecuteAppFunc executeApp, CancellationToken cancellationToken) in /_/src/Microsoft.DotNet.XHarness.Apple/Orchestration/BaseOrchestrator.cs:line 291
         at Microsoft.DotNet.XHarness.Apple.BaseOrchestrator.OrchestrateOperation(TestTargetOs target, String deviceName, Boolean includeWirelessDevices, Boolean resetSimulator, Boolean enableLldb, GetAppBundleInfoFunc getAppBundle, ExecuteMacCatalystAppFunc executeMacCatalystApp, ExecuteAppFunc executeApp, CancellationToken cancellationToken) in /_/src/Microsoft.DotNet.XHarness.Apple/Orchestration/BaseOrchestrator.cs:line 96
XHarness exit code: 90 (APP_LAUNCH_TIMEOUT)
An error occurred when executing task 'Default'.
Error: Value cannot be null. (Parameter 'filePath')
An error occurred when executing task 'tests-ios'.
Error: .NET CLI: Process returned an error (exit code 1).

##[error]Bash exited with code '1'.

Screenshot_2026-04-11-14-30-59-913_com.mmbox.xbrowser.pro.jpg

@mattleibow
Copy link
Copy Markdown
Collaborator

mattleibow commented Apr 13, 2026

/azp run

@azure-pipelines
Copy link
Copy Markdown

No pipelines are associated with this pull request.

@azure-pipelines
Copy link
Copy Markdown

No pipelines are associated with this pull request.

@mattleibow mattleibow merged commit 2cedacf into mono:main Apr 14, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[FEATURE] linux-bionic flavor of libSkiaSharp and libHarfBuzzSharp

4 participants