Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Documentation/docs-mobile/messages/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ Either change the value in the AndroidManifest.xml to match the $(SupportedOSPla
+ XA3005: The detected Android NDK version is incompatible with the targeted LLVM configuration.
+ XA3006: Could not compile native assembly file: {file}
+ XA3007: Could not link native shared library: {library}
+ XA3008: Failed to extract debug info from '{library}'

## XA4xxx: Code generation

Expand Down
28 changes: 28 additions & 0 deletions Documentation/docs-mobile/messages/xa3008.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
title: .NET for Android warning XA3008
description: XA3008 warning code
ms.date: 05/15/2026
f1_keywords:
- "XA3008"
---

# .NET for Android warning XA3008

## Issue

This warning is emitted when the build system fails to extract debug symbols from
a native shared library using `objcopy`. The shared library itself was linked
successfully, but separate debug symbol files (`.dbg.so`) could not be created.

Comment thread
jonathanpeppers marked this conversation as resolved.
Outdated
## Solution

This warning is non-fatal and the app will still work correctly. Debug symbols
are used for native crash diagnostics. If you need native debug symbols, check
that the NDK `objcopy` tool is installed and functioning correctly.

## Example messages

```
warning XA3008: Failed to extract debug info from 'libmonodroid.so':
objcopy: error: ...
```

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions src/Xamarin.Android.Build.Tasks/Properties/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -589,6 +589,10 @@ Either change the value in the AndroidManifest.xml to match the $(SupportedOSPla
<value>Could not link native shared library: {0}{1}</value>
<comment>The '{1}' placeholder is replaced with full output of the failed command, starting and ending with a newline.</comment>
</data>
<data name="XA3008" xml:space="preserve">
<value>Failed to extract debug info from '{0}': {1}</value>
Comment thread
jonathanpeppers marked this conversation as resolved.
Outdated
<comment>'{0}' is the native shared library filename. '{1}' is the full output of the failed command, starting and ending with a newline.</comment>
</data>
<data name="XA4209" xml:space="preserve">
<value>Failed to generate Java type for class: {0} due to {1}</value>
<comment>{0} - The managed type name
Expand Down
4 changes: 1 addition & 3 deletions src/Xamarin.Android.Build.Tasks/Utilities/NativeLinker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -402,9 +402,7 @@ bool ExtractDebugSymbols (ITaskItem outputSharedLibrary)
void LogFailure ()
{
var sb = MonoAndroidHelper.MergeStdoutAndStderrMessages (stdoutLines, stderrLines);
// TODO: consider making it a warning
// TODO: make it a coded message
log.LogError ("Failed to extract debug info", Path.GetFileName (sourceLib), sb.ToString ());
log.LogCodedWarning ("XA3008", Properties.Resources.XA3008, Path.GetFileName (sourceLib), sb.ToString ());
}
Comment thread
jonathanpeppers marked this conversation as resolved.
}

Expand Down