次の方法で共有


[ビルド プロパティ]

MSBuild プロパティは、ターゲットの動作を制御します。 これらは、MSBuild PropertyGroup 内のプロジェクト ファイル (MyApp.csproj など) 内で指定されます。

AdbTarget

$(AdbTarget) プロパティは、Android パッケージのインストール先または削除元となる Android ターゲット デバイスを指定します。 このプロパティの値は、adb ターゲット デバイス オプションと同じです。

AfterGenerateAndroidManifest

このプロパティに一覧表示された MSBuild ターゲットは、$(IntermediateOutputPath)AndroidManifest.xml ファイルが生成される場所である内部の _GenerateJavaStubs ターゲットの直後に実行されます。 生成された AndroidManifest.xml ファイルに変更を加える場合、この拡張ポイントを使用して行うことができます。

AndroidAapt2CompileExtraArgs

Android アセットとリソースを処理するときに、aapt2 compile コマンドに渡すコマンド ライン オプションを指定します。

AndroidAapt2LinkExtraArgs

Android アセットとリソースを処理するときに、aapt2 link コマンドに渡すコマンド ライン オプションを指定します。

AndroidAddKeepAlives

オブジェクトが早期に収集されないように、リンカーによってバインド プロジェクト内に GC.KeepAlive() 呼び出しを挿入するかどうかを制御するブール型プロパティ。

リリース構成のビルドの既定値は True です。

AndroidAotAdditionalArguments

$(AndroidEnableProfiledAot) または $(AotAssemblies)true に設定されているプロジェクトの Aot タスク中に、Mono コンパイラにオプションを渡すことができるようにする文字列プロパティ。 Mono クロスコンパイラを呼び出すときに、プロパティの文字列値が応答ファイルに追加されます。

一般に、このプロパティは空白のままにしておく必要がありますが、特殊なシナリオでは、柔軟性が向上する場合があります。

$(AndroidAotAdditionalArguments) プロパティは、関連する $(AndroidExtraAotOptions) プロパティとは異なります。$(AndroidAotAdditionalArguments) は、--verbose--debug などの完全なスタンドアロンのスペース区切りオプションを AOT コンパイラに渡します。一方、$(AndroidExtraAotOptions) には、AOT コンパイラの --aot オプションの一部であるコンマ区切りの引数が含まれます。

AndroidAotCustomProfilePath

プロファイラー データを保持するために aprofutil が作成する必要があるファイル。

AndroidAotProfiles

開発者がコマンド ラインから AOT プロファイルを追加できるようにする文字列プロパティ。 セミコロンまたはコンマで区切られた絶対パスの一覧です。

AndroidAotProfilerPort

プロファイル データを取得するときに aprofutil が接続する必要があるポート。

AndroidAotEnableLazyLoad

起動時に AOT-d アセンブリの事前読み込みではなく、遅延読み込みを有効にします。 任意の形式の AOT が有効になっているリリース ビルドの場合、既定値は True です。

.NET 6 で導入されました。

AndroidApkDigestAlgorithm

jarsigner -digestalg で使用するダイジェスト アルゴリズムを指定する文字列値。

既定値は SHA-256 です。

AndroidApkSignerAdditionalArguments

開発者が apksigner ツールに引数を指定することを許可する文字列プロパティ。

AndroidApkSigningAlgorithm

jarsigner -sigalg で使用する署名アルゴリズムを指定する文字列値。

既定値は SHA256withRSA です。

AndroidApplication

プロジェクトが Android アプリケーション用 (True) か、または Android ライブラリ プロジェクト用 (False または存在しない) かを示すブール値。

<AndroidApplication>True</AndroidApplication> を持つプロジェクトは、Android パッケージ内に 1 つしか存在できない場合があります (残念ながら、この要件は検証されていないため、Android リソースに関する分かりにくい突拍子のないエラーが発生する可能性があります)。

AndroidApplicationJavaClass

Android.App.Application からクラスを継承するときに、android.app.Application の代わりに使用する完全な Java クラス名。

$(AndroidApplicationJavaClass) プロパティは通常、$(AndroidEnableMultiDex) MSBuild プロパティなどの "他の" プロパティによって設定されます。

AndroidAvoidEmitForPerformance

起動パフォーマンスを向上させるために、 System.Reflection.Emit を "回避" するかどうかを決定するブール型プロパティ。 このプロパティは既定で True です。

System.Reflection.Emitの使用は、Android でのスタートアップ パフォーマンスに顕著な影響を与えます。 この動作は、次の機能スイッチでは既定で無効になっています。

  • Switch.System.Reflection.ForceInterpretedInvoke: MethodInfo.Invoke() または ConstructorInfo.Invoke()への 2 回目の呼び出しの後に、繰り返し呼び出しのパフォーマンスを向上させるためにコードが生成されます。

  • Microsoft.Extensions.DependencyInjection.DisableDynamicEngine: 依存関係挿入コンテナーからサービスを取得する 2 回目の呼び出しの後、繰り返し呼び出しのパフォーマンスを向上させるためにコードが生成されます。

ほとんどの Android アプリケーションでは、この動作を無効にすることが望ましいです。

使用可能な機能スイッチの詳細についてはBase クラス ライブラリ機能スイッチのドキュメントを参照してください。

.NET 8 で追加されました。

AndroidBinUtilsPath

ld、ネイティブ リンカー、as、ネイティブ アセンブラーなどの Android binutils が格納されているディレクトリへのパス。 これらのツールは、.NET for Android ワークロードに含まれています。

既定値は $(MonoAndroidBinDirectory)\binutils\bin\ です。

AndroidBoundExceptionType

Android で提供される .NET 型が Java 型 ( Android.Runtime.InputStreamInvokerSystem.IO.StreamAndroid.Runtime.JavaDictionarySystem.Collections.IDictionaryなど) の観点から .NET 型またはインターフェイスを実装する場合に例外を伝達する方法を指定する文字列値。

  • Java: 元の Java 例外の型はそのまま伝播されます。

    Java は、たとえば、InputStreamInvokerSystem.IO.Stream API を適切に実装していないことを意味します。これは、Stream.Read() から System.IO.IOException ではなく Java.IO.IOException がスローされる可能性があるためです。

  • System: 元の Java 例外の型がキャッチされ、適切な .NET 例外の型でラップされます。

    System は、たとえば、InputStreamInvokerSystem.IO.Stream を正しく実装し、Stream.Read()Java.IO.IOException インスタンスをスロー "しない" ことを意味します。 (代わりに、Exception.InnerException の値として Java.IO.IOException を含む System.IO.IOException をスローする場合があります)。

    既定値は System です。

AndroidBoundInterfacesContainConstants

インターフェイスのバインド定数をサポートするかどうか、または IMyInterfaceConsts クラスを作成する回避策を使用するかどうかを決定するブール型プロパティ。

既定値は True です。

AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods

インターフェイスの既定のメンバーと静的メンバーをサポートするかどうか、または abstract class MyInterface のような静的メンバーを含む兄弟クラスを作成する以前の回避策をサポートするかどうかを示すブール型プロパティ。

既定値は、.NET 6 では True、レガシの場合は False です。

AndroidBoundInterfacesContainTypes

インターフェイスで入れ子になった型をサポートするかどうか、または IMyInterfaceMyNestedClass のような入れ子になっていない型を作成する回避策をサポートするかどうかを示すブール型プロパティ。

既定値は、.NET 6 では True、レガシの場合は False です。

AndroidBuildApplicationPackage

パッケージ (.apk) を作成して署名するかどうかを示すブール値。 この値を True に設定することは、SignAndroidPackage ビルド ターゲットを使用することと同じです。

このプロパティは既定で False です。

AndroidBundleConfigurationFile

Android アプリ バンドルをビルドするときに bundletool構成ファイルとして使用するファイル名を指定します。 このファイルは、APK を生成するためのどのディメンションでバンドルを分割するかなど、バンドルから APK を生成する方法のいくつかの側面を制御します。 .NET for Android では、圧縮されていないファイル拡張子の一覧など、これらの設定の一部が自動的に構成されます。

このプロパティが意味をなすのは、$(AndroidPackageFormat)aab に設定されている場合のみです。

AndroidBundleToolExtraArgs

アプリ バンドルをビルドするときに bundletool コマンドに渡すコマンド ライン オプションを指定します。

AndroidClassParser

.jar ファイルの解析方法を制御する文字列プロパティ。 使用可能な値 :

  • class-parse: JVM を利用せずに、class-parse.exe を使用して直接 Java バイトコードを解析します。

  • jar2xml: この値は廃止され、サポートされなくなりました。

AndroidCodegenTarget

コード生成ターゲット ABI を制御する文字列プロパティ。 使用可能な値 :

  • XamarinAndroid: この値は廃止され、サポートされなくなりました。

  • XAJavaInterop1: JNI の呼び出しに Java.Interop を使用します。 XAJavaInterop1 を使用したバインドのアセンブリは、Xamarin.Android 6.1 以降でのみビルドおよび実行できます。 Xamarin.Android 6.1 以降は、この値で Mono.Android.dll をバインドします。

既定値は XAJavaInterop1 です。

AndroidCreatePackagePerAbi

1 つの .apk ですべての ABI をサポートするのでなく、($(AndroidSupportedAbis) で指定された ABI ごとに 1 つ) ファイルの "セット" を作成する必要があるかどうかを決定するブール型プロパティ。

ABI 固有の APK のビルド」ガイドも参照してください。

AndroidCreateProguardMappingFile

ビルド プロセスの一部として ProGuard マッピング ファイルを生成さするかどうかを制御するブール型プロパティ。

csproj に以下を追加するとファイルが生成され、AndroidProguardMappingFile プロパティを使用して最終的なマッピング ファイルの場所が制御されます。

<AndroidCreateProguardMappingFile>True</AndroidCreateProguardMappingFile>

.aab ファイルを生成すると、マッピング ファイルがパッケージに自動的に含まれます。 Google Play ストアに手動でアップロードする必要はありません。 .apk ファイルを使用する場合は、AndroidProguardMappingFile を手動でアップロードする必要があります。

$(AndroidLinkTool)=r8 を使用する場合、既定値は True です。

AndroidDebugKeyAlgorithm

debug.keystore 用に使用する既定のアルゴリズムを指定します。 既定値は RSA です。

AndroidDebugKeyValidity

debug.keystore 用に使用する既定の有効性を指定します。 既定値は 1095030 * 365 または 30 years です。

AndroidDebugStoreType

debug.keystore に使用するキー ストア ファイル形式を指定します。 既定値は pkcs12 です。

AndroidDeviceUserId

ゲストまたは職場のアカウントでアプリケーションを展開およびデバッグできるようにします。 値は、次の adb コマンドから取得した uid 値です。

adb shell pm list users

上記のコマンドにより次のデータが返されます。

Users:
	UserInfo{0:Owner:c13} running
	UserInfo{10:Guest:404}

uid は最初の整数値です。 上記の出力では、010 です。

AndroidDexTool

dx または d8 の有効な値の列挙方式のプロパティ。 .NET for Android ビルド プロセス中に使用される Android dex コンパイラを示します。 既定値は dx です。 D8 と R8 に関するドキュメントを参照してください。

AndroidEnableDesugar

desugar が有効かどうかを決定するブール型プロパティ。 現在、Android ではすべての Java 8 機能がサポートされておらず、javac コンパイラの出力に desugar と呼ばれるバイトコード変換を実行して、既定のツールチェーンにより新しい言語機能が実装されています。 既定値は、$(AndroidDexTool)=dx を使用する場合は False$(AndroidDexTool)=d8 を使用する場合は True です。

AndroidEnableGooglePlayStoreChecks

開発者が次の Google Play ストア チェックを無効にできるようにするブール型プロパティ: XA1004、XA1005、および XA1006。 これらのチェックを無効にすることは、Google Play ストアを対象としておらず、このチェックを実行したくない開発者にとって役立ちます。

AndroidEnableMarshalMethods

LLVM マーシャリング メソッドが有効かどうかを決定する bool プロパティ。 LLVM マーシャリング メソッドは、Java native メソッドの登録にネイティブ エントリ ポイントを使用するアプリのスタートアップ最適化です。

既定では、このプロパティは False です。

.NET 8 で追加されました。

AndroidEnableMultiDex

最終的な .apk で Multi-Dex サポートを使用するかどうかを決定するブール型プロパティ。

このプロパティは既定で False です。

AndroidEnableObsoleteOverrideInheritance

バインドされたメソッドがオーバーライドするメソッドから [Obsolete] 属性を自動的に継承するかどうかを決定するブール型プロパティ。

.NET 8 では、このプロパティのサポートが追加されました。

このプロパティは既定で True です。

AndroidEnablePreloadAssemblies

アプリケーション パッケージ内でバンドルされているすべてのマネージド アセンブリを、プロセスの起動中に読み込むかどうかを制御するブール型プロパティ。

True に設定すると、アプリケーション コードが呼び出される前に、アプリケーション パッケージ内でバンドルされているすべてのアセンブリがプロセスの起動中に読み込まれます。

False に設定すると、アセンブリは必要な場合にのみ読み込まれます。 必要に応じてアセンブリを読み込むと、アプリケーションの起動がより高速になり、デスクトップの .NET セマンティクスとの整合性も高まります。 時間の短縮を確認したい場合は、timing を含めるよう debug.mono.log システム プロパティを設定して、adb logcat 内で Finished loading assemblies: preloaded メッセージを探します。

依存関係の挿入を使うアプリケーションまたはライブラリでは、それらが同じように AppDomain.CurrentDomain.GetAssemblies() でアプリケーション バンドル内のすべてのアセンブリを返すことが必要な場合、それ以外ではアセンブリが必要なかった場合でも、このプロパティが True になることを "必要とする" 場合があります。

既定では、この値は False です。

AndroidEnableProfiledAot

Ahead-of-Time コンパイル中に AOT プロファイルを使用するかどうかを決定するブール型プロパティ。

該当するプロファイルは、@(AndroidAotProfile) 項目グループに一覧表示されます。 この項目グループには、既定のプロファイルが含まれています。 既存のものを削除し、独自の AOT プロファイルを追加することで上書きできます。

このプロパティは既定で False です。

AndroidEnableRestrictToAttributes

obsoletedisableの有効な値を持つ列挙スタイルのプロパティ。

obsoleteに設定すると、Java 注釈androidx.annotation.RestrictTo or でマークされている型とメンバーがエクスポートされていない Java パッケージ内にある場合は、C# バインドで[Obsolete]属性でマークされます。

この [Obsolete] 属性には、Java パッケージ所有者が API を "内部" と見なし、その使用に対して警告することを説明する説明メッセージが含まれています。

この属性には、"通常の" 古い API とは別に抑制できるように、カスタム警告コード XAOBS001 もあります。

disableに設定すると、API は通常どおりに生成され、追加の属性はありません。 (これは、.NET 8 より前と同じ動作です)。

API を自動的に削除するのではなく、 [Obsolete] 属性を追加することで、既存のパッケージとの API の互換性を維持しました。 代わりに、@RestrictTo注釈orがエクスポートされていない Java パッケージ内にあるメンバーを削除する場合は、このプロパティに加えて Transform ファイルを使用して、これらの型がバインドされないようにすることができます。

<remove-node path="//*[@annotated-visibility]" />

.NET 8 では、このプロパティのサポートが追加されました。

このプロパティは既定で obsolete に設定されています。

AndroidEnableSGenConcurrent

Mono の同時 GC コレクターを使用するかどうかを決定するブール型プロパティ。

このプロパティは既定で False です。

AndroidErrorOnCustomJavaObject

Java.Lang.Object または Java.Lang.Throwable を継承 "することなく"、型が Android.Runtime.IJavaObject を実装するかどうかを決定するブール型プロパティ。

class BadType : IJavaObject {
    public IntPtr Handle {
        get {return IntPtr.Zero;}
    }

    public void Dispose()
    {
    }
}

True の場合、このような型は XA4212 エラーを生成し、それ以外の場合は XA4212 警告を生成します。

このプロパティは既定で True です。

AndroidExplicitCrunch

このプロパティはサポートされなくなりました。

AndroidExtraAotOptions

$(AndroidEnableProfiledAot) または $(AotAssemblies)true に設定されているプロジェクトの Aot タスク中に、Mono コンパイラにオプションを渡すことができるようにする文字列プロパティ。 Mono クロスコンパイラを呼び出すときに、プロパティの文字列値が応答ファイルに追加されます。

一般に、このプロパティは空白のままにしておく必要がありますが、特殊なシナリオでは、柔軟性が向上する場合があります。

$(AndroidExtraAotOptions) プロパティは、関連する $(AndroidAotAdditionalArguments) プロパティとは異なります。$(AndroidAotAdditionalArguments) は、コンマ区切りの引数を Mono コンパイラの --aot オプションに配置します。 $(AndroidExtraAotOptions) では代わりに、--verbose--debug など、完全なスタンドアロンのスペース区切りオプションがコンパイラに渡されます。

AndroidFastDeploymentType

$(EmbedAssembliesIntoApk) MSBuild プロパティが False の場合に、ターゲット デバイスの高速展開ディレクトリに展開できる型を制御する値の : (コロン) 区切りのリスト。 リソースが高速展開される場合、そのリソースが生成された .apk に埋め込まれないため、展開時間を短縮することができます (高速展開が増えるほど、.apk を再ビルドする頻度が減り、インストール プロセスを高速化できます)。有効な値を次に示します。

  • Assemblies: アプリケーション アセンブリを展開します。
  • Dexes: .dex ファイル、ネイティブ ライブラリ、および typemap を展開します。 Dexes 値は、Android 4.4 以降 (API-19) を実行しているデバイスで "のみ" 使用できます。

既定値は Assemblies です。

そのシステムを使用したリソースおよび資産の高速展開のサポートは、コミット f0d565fe で削除されました。 これは、非推奨の API を使用して作業する必要があったからです。

試験的です。

AndroidFragmentType

レイアウト バインディング コードを生成するときに、すべての <fragment> レイアウト要素に使用される既定の完全修飾型を指定します。 既定値は、Android の標準の Android.App.Fragment 型です。

AndroidGenerateJniMarshalMethods

ビルド プロセスの一環として、JNI マーシャリング メソッドの生成を有効にするブール型プロパティ。 これにより、バインディング ヘルパー コードでの System.Reflection の使用量が大幅に削減されます。

既定値は False です。 開発者が新しい JNI マーシャリング メソッド機能を使用する場合、

<AndroidGenerateJniMarshalMethods>True</AndroidGenerateJniMarshalMethods>

該当する .csproj 内に上の内容を設定できます。 または、コマンド ラインでプロパティを指定します。

-p:AndroidGenerateJniMarshalMethods=True

試験的です。 既定値は False です。

AndroidGenerateJniMarshalMethodsAdditionalArguments

jnimarshalmethod-gen.exe 呼び出しにパラメータを追加するために使用できる文字列プロパティ。デバッグに役立ち、-v-d--keeptemp などのオプションを使用できます。

既定値は、空の文字列です。 これは、.csproj ファイルまたはコマンド ラインで設定できます。 次に例を示します。

<AndroidGenerateJniMarshalMethodsAdditionalArguments>-v -d --keeptemp</AndroidGenerateJniMarshalMethodsAdditionalArguments>

または

-p:AndroidGenerateJniMarshalMethodsAdditionalArguments="-v -d --keeptemp"

AndroidGenerateLayoutBindings

true に設定されている場合はレイアウトのコードビハインドの生成を有効にし、false に設定されている場合は完全に無効にします。

既定値は false です。

AndroidGenerateResourceDesigner

既定値は true です。 false に設定すると、Resource.designer.cs の生成が無効になります。

AndroidHttpClientHandlerType

既定の System.Net.Http.HttpClient コンストラクターによって使用される、既定の System.Net.Http.HttpMessageHandler の実装を制御します。 値は HttpMessageHandler サブクラスのアセンブリ修飾型名であり、System.Type.GetType(string) での使用に適しています。

.NET 6 以降では、このプロパティは $(UseNativeHttpHandler)=trueと共に使用した場合にのみ有効です。 このプロパティでは次の値が最も一般的です。

  • Xamarin.Android.Net.AndroidMessageHandler: Android Java API を使用して HTTP 要求を実行します。 これは従来の Xamarin.Android.Net.AndroidClientHandler に似ていますが、いくつかの機能強化が行われました。 HTTP 1.1 と TLS 1.2 がサポートされています。 これは既定の HTTP メッセージ ハンドラーです。

  • System.Net.Http.SocketsHttpHandler, System.Net.Http: .NET の既定のメッセージ ハンドラー。 HTTP/2、TLS 1.2 をサポートしており、 Grpc.Net.Client で使用することをお勧めします。 この値は、 $(UseNativeHttpHandler)=falseと同じです。

  • 未設定/空の文字列。これは System.Net.Http.HttpClientHandler, System.Net.Http と同等です。

    Visual Studio のプロパティ ページの既定オプションに対応しています。

    Visual Studio で [最低限の Android バージョン][Android 4.4.87] 以下に構成されている、または Visual Studio for Mac で [ターゲット プラットフォーム][最新の開発] または [最大の互換性] に設定されている場合、新しいプロジェクトのウィザードで、新しいプロジェクトに対してこのオプションが選択されます。

  • System.Net.Http.HttpClientHandler, System.Net.Http: マネージド HttpMessageHandler を使用します。

    Visual Studio のプロパティ ページのマネージドオプションに対応しています。

Note

.NET 6 では、指定する型を Xamarin.Android.Net.AndroidClientHandler または System.Net.Http.HttpClientHandler したり、これらのクラスから継承したりすることはできません。 "クラシック" Xamarin.Android から移行する場合は、 AndroidMessageHandler を使用するか、代わりにそこからカスタム ハンドラーを派生させます。

Note

$(AndroidHttpClientHandlerType) プロパティのサポートは、XA_HTTP_CLIENT_HANDLER_TYPE 環境変数を設定することにより機能します。 次のビルド アクションを含むファイル内で見つかる $XA_HTTP_CLIENT_HANDLER_TYPE 値が優先されます: @(AndroidEnvironment)

AndroidIncludeWrapSh

Android ラッパー スクリプト (wrap.sh) を APK にパッケージ化する必要があるかどうかを示すブール値。 ラッパー スクリプトはアプリケーションの起動方法や動作方法に大きく影響する可能性があるため、既定値は false になっています。スクリプトは、デバッグを行う場合やアプリケーションの起動または実行時の動作を変更する場合など、必要な場合にのみ含めるようにします。

スクリプトをプロジェクトに追加するには、@(AndroidNativeLibrary) ビルド アクションを使用します。これは、アーキテクチャ固有のネイティブ ライブラリと同じディレクトリに配置されているため、wrap.sh という名前を付ける必要があります。

wrap.sh スクリプトへのパスを指定する最も簡単な方法は、ターゲット アーキテクチャにちなんだ名前を付けたディレクトリにスクリプトを配置することです。 この方法は、アーキテクチャごとに wrap.sh が 1 つしかない場合に機能します。

<AndroidNativeLibrary Include="path/to/arm64-v8a/wrap.sh" />

ただし、さまざまな目的のためにアーキテクチャごとに複数の wrap.sh が必要な場合には、この方法は機能しません。 そのような場合は、代わりに AndroidNativeLibraryLink メタデータを使用して名前を指定できます。

<AndroidNativeLibrary Include="/path/to/my/arm64-wrap.sh">
  <Link>lib\arm64-v8a\wrap.sh</Link>
</AndroidNativeLibrary>

Link メタデータを使用する場合、その値に指定するパスは、APK ルート ディレクトリを基準とする有効なネイティブ アーキテクチャ固有のライブラリ パスである必要があります。 パスの形式は lib\ARCH\wrap.sh です。ARCH には次のいずれかを指定できます。

  • arm64-v8a
  • armeabi-v7a
  • x86_64
  • x86

AndroidIncludeAssetPacksInPackage

このプロパティは、アセット パックのビルドが最終的な .aab ファイルに自動的に含まれるかどうかを制御します。 既定では trueされます。

場合によっては、ユーザーが中間リリースをリリースする必要がある場合があります。 このような場合、ユーザーは資産パックを更新する必要はありません。 特にアセット パックの内容が変更されていない場合。 このプロパティを使用すると、アセット パックが不要な場合はスキップできます。

.NET 9 で追加

AndroidInstallJavaDependencies

既定値は、コマンド ライン ビルドの true です。 trueに設定すると、<InstallAndroidDependencies/> ターゲットの実行時に Java SDK のインストールが有効になります。

.NET 9 では、このプロパティのサポートが追加されました。

AndroidJavadocVerbosity

バインド プロジェクト内で Javadoc ドキュメントをインポートする際に、C# XML ドキュメントのコメントをどの程度 "詳細" にするかを指定します。

を使用する必要があります。@(JavaSourceJar) ビルド アクションを使用する必要があります。

$(AndroidJavadocVerbosity) プロパティは列挙型に似ています。指定可能な値は full または intellisense です。

既定値は intellisense です。

AndroidKeyStore

カスタム署名情報を使用するかどうかを示すブール値。 既定値は False で、既定のデバッグ署名キーがパッケージの署名に使用されることを意味します。

AndroidLaunchActivity

起動する Android アクティビティ。

AndroidLinkMode

Android パッケージ内に含まれるアセンブリで実行する必要があるリンクの種類を指定します。 Android アプリケーション プロジェクトでのみ使用されます。 既定値は SdkOnly です。 有効な値は次のとおりです。

  • None: リンクは試行されません。

  • SdkOnly: リンクは基本クラス ライブラリでのみ実行され、ユーザーのアセンブリでは実行されません。

  • Full: リンクは基本クラス ライブラリとユーザーのアセンブリで実行されます。

    Note

    FullAndroidLinkMode 値を使用すると、多くの場合、特にリフレクションを使用している場合には、アプリが破損します。 何をしているかを十分に理解している場合を除き、使用しないでください。

<AndroidLinkMode>SdkOnly</AndroidLinkMode>

AndroidLinkResources

true の場合、ビルド システムは、すべてのアセンブリ内の Resource.Designer.cs Resource クラスの入れ子になった型をリンクします。 これらの型を使用する IL コードは、フィールドにアクセスするのではなく、値を直接使用するように更新されます。

入れ子になった型をリンクすると、apk サイズを少し小さくすることができ、起動時のパフォーマンスを向上させることもできます。 "リリース" ビルドのみがリンクされます。

試験的です。 次のようなコードでのみ動作するように設計されています

var view = FindViewById(Resources.Ids.foo);

その他のシナリオ (リフレクションなど) はサポートされません。

AndroidLinkSkip

リンクしないアセンブリ名のセミコロン (;) で区切られたリストを、ファイル拡張子を使わずに指定します。 Android アプリケーション プロジェクト内でのみ使用されます。

<AndroidLinkSkip>Assembly1;Assembly2</AndroidLinkSkip>

AndroidLinkTool

proguard または r8 の有効な値の列挙方式のプロパティ。 Java コードに使用されるコード シュリンカーを示します。 既定値は空の文字列、または $(AndroidEnableProguard)True の場合は proguard です。 D8 と R8 に関するドキュメントを参照してください。

AndroidLintEnabled

開発者がパッケージ化プロセスの一部として、Android の lint ツールを実行できるようにするブール型プロパティ。

$(AndroidLintEnabled)=True の場合、次のプロパティが使用されます。

次のビルド アクションを使用することもできます。

Android の lint ツールの詳細については、Lint のヘルプに関するページを参照してください。

AndroidLintEnabledIssues

有効にする lint の問題のコンマ区切りリストである文字列プロパティ。

$(AndroidLintEnabled)=True の場合にのみ使用されます。

AndroidLintDisabledIssues

無効にする lint の問題のコンマ区切りリストである文字列プロパティ。

$(AndroidLintEnabled)=True の場合にのみ使用されます。

AndroidLintCheckIssues

チェックする lint の問題のコンマ区切りリストである文字列プロパティ。

$(AndroidLintEnabled)=True の場合にのみ使用されます。

注: これらの問題のみがチェックされます。

AndroidManagedSymbols

ファイル名と行番号の情報を Release スタック トレースから抽出できるように、シーケンス ポイントを生成するかどうかを制御するブール型プロパティ。

AndroidManifest

アプリの AndroidManifest.xml のテンプレートとして使用するファイル名を指定します。 ビルド時に、実際の AndroidManifest.xml を生成するためにその他の必要な値がマージされます。 $(AndroidManifest) は、/manifest/@package 属性にパッケージ名を含める必要があります。

AndroidManifestMerger

AndroidManifest.xml ファイルをマージするための実装を指定します。 これは、legacy が元の C# の実装を選択し、manifestmerger.jar が Google の Java 実装を選択する列挙型のプロパティです。

現在の既定値は manifestmerger.jar です。 古いバージョンを使用する場合は、csproj に次のコードを追加します

<AndroidManifestMerger>legacy</AndroidManifestMerger>

Google のマージャーでは、Android ドキュメントに記載されている xmlns:tools="http://schemas.android.com/tools" のサポートが有効になります。

AndroidManifestMergerExtraArgs

Android ドキュメント ツールに引数を指定する文字列プロパティ。

ツールからの詳細な出力が必要な場合は、.csproj に以下を追加できます。

<AndroidManifestMergerExtraArgs>--log VERBOSE</AndroidManifestMergerExtraArgs>

AndroidManifestType

Xamarin または GoogleV2 の有効な値の列挙方式のプロパティ。 これは、InstallAndroidDependencies ターゲットが、どの Android パッケージとパッケージ バージョンが利用可能で、インストール可能かを判断するために使用するリポジトリを制御します。

Xamarin は、Visual Studio SDK マネージャー内の許可された一覧 (推奨) リポジトリです。

GoogleV2 は、Visual Studio SDK マネージャー内のすべての一覧 (サポート対象外) リポジトリです。

$(AndroidManifestType)が設定されていない場合は、Xamarinが使用されます。

AndroidManifestPlaceholders

AndroidManifest.xml のキーと値の置換ペアのセミコロン区切りのリストです。各ペアの形式は key=value です。

たとえば、assemblyName=$(AssemblyName) のプロパティ値によって、AndroidManifest.xml に表示できる ${assemblyName} プレースホルダーが定義されます。

<application android:label="${assemblyName}"

これにより、ビルド プロセスから AndroidManifest.xml ファイルに変数を挿入することができます。

AndroidMultiDexClassListExtraArgs

multidex.keep ファイルを生成するときに、開発者が引数を com.android.multidex.MainDexListBuilder に渡すことを許可する文字列プロパティ。

1 つの具体的なケースは、dx のコンパイル中に次のエラーが発生する場合です。

com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded

このエラーが発生している場合は、以下を .csproj に追加できます。

<DxExtraArguments>--force-jumbo </DxExtraArguments>
<AndroidMultiDexClassListExtraArgs>--disable-annotation-resolution-workaround</AndroidMultiDexClassListExtraArgs>

これにより、dx ステップが成功します。

AndroidPackageFormat

apk または aab の有効な値の列挙方式のプロパティ。 Android アプリケーションを APK ファイルまたは Android アプリ バンドルとしてパッケージ化するかどうかを示します。 アプリ バンドルは、Google Play での送信を目的とした Release ビルドの新しい形式です。 既定値は apk です。

$(AndroidPackageFormat)aab に設定すると、Android アプリ バンドルに必要な他の MSBuild プロパティが設定されます。

このプロパティは、.NET 6 では非推奨になります。 ユーザーは新しい AndroidPackageFormats に切り替える必要があります。

AndroidPackageFormats

セミコロン区切りのプロパティで、有効な値は apkaab です。 Android アプリケーションを APK ファイルまたは Android アプリ バンドルとしてパッケージ化するかどうかを示します。 アプリ バンドルは、Google Play での送信を目的とした Release ビルドの新しい形式です。

リリース ビルドをビルドするときは、さまざまなストアに配布するために aabapk の両方を生成する必要がある場合があります。

AndroidPackageFormatsaab;apk に設定すると、両方が生成されます。 AndroidPackageFormatsaab または apk のいずれかに設定すると、1 つのファイルのみが生成されます。

既定値は、Release ビルドに対してのみaab;apkされます。 デバッグには引き続き apk のみを使用することをお勧めします。

AndroidPackageNamingPolicy

生成された Java ソース コードの Java パッケージ名を指定するための列挙型スタイルのプロパティ。

LowercaseCrc64 のみがサポートされています。

AndroidProguardMappingFile

r8-printmapping proguard ルールを指定します。 これは、mapping.txt ファイルが $(OutputPath) フォルダーに生成されることを意味します。 このファイルは、パッケージを Google Play ストアにアップロードするときに使用できます。

既定では、このファイルは AndroidLinkTool=r8 を使用すると自動的に生成され、次のファイル $(OutputPath)mapping.txt が生成されます。

このマッピング ファイルを生成したくない場合は、AndroidCreateProguardMappingFile プロパティを使用して作成を停止できます。 次を、プロジェクトに追加します。

<AndroidCreateProguardMappingFile>False</AndroidCreateProguardMappingFile>

または、コマンド ラインで -p:AndroidCreateProguardMappingFile=False を使用します。

AndroidD8IgnoreWarnings

d8に渡す--map-diagnostics warning infoを指定します。 既定値は True ですが、より厳密な動作を強制するために False を設定できます。 詳細については、 D8 と R8 のソース コード を参照してください。

.NET 8 で追加されました。

AndroidR8IgnoreWarnings

r8-ignorewarnings proguard ルールを指定します。 これにより、特定の警告が発生した場合でも、r8 で Dex コンパイルを使用して続けることができます。 既定値は True ですが、より厳密な動作を強制するために False を設定できます。 詳細については、ProGuard のマニュアルを参照してください。

.NET 8 以降では、 --map-diagnostics warning infoを指定します。 詳細については、 D8 と R8 のソース コード を参照してください。

AndroidR8JarPath

r8 dex コンパイラおよびシュリンカーで使用する r8.jar へのパス。 既定値は、.NET for Android ワークロードインストールへのパスです。 詳細については、D8 と R8 に関するドキュメントをご覧ください。

AndroidResgenExtraArgs

Android アセットとリソースを処理するときに、aapt コマンドに渡すコマンド ライン オプションを指定します。

AndroidResgenFile

生成するリソース ファイルの名前を指定します。 既定のテンプレートでは、これは Resource.designer.cs に設定されます。

AndroidSdkBuildToolsVersion

Android SDK ビルド ツール パッケージは、特に、aapt および zipalign ツールを提供します。 複数の異なるバージョンのビルド ツール パッケージを同時にインストールすることができます。 パッケージ化するビルド ツール パッケージの選択は、"優先" ビルド ツールのバージョンをチェックして、ある場合はそれを使用して行われます。"優先" バージョンが "ない" 場合は、インストールされている最も高いバージョンのビルド ツール パッケージが使用されます。

$(AndroidSdkBuildToolsVersion) MSBuild プロパティには、優先ビルド ツールのバージョンが含まれています。 .NET for Android ビルド システムでは、 Xamarin.Android.Common.targetsの既定値が提供されます。また、以前の aapt バージョンが動作することがわかっている間に最新の aapt がクラッシュした場合など、プロジェクト ファイル内で既定値をオーバーライドして代替ビルド ツール バージョンを選択できます。

AndroidSigningKeyAlias

キーストア内のキーに別名を指定します。 これは、キーストアを作成するときに使用される keytool -alias 値です。

AndroidSigningKeyPass

キーストア ファイル内にあるキーのパスワードを指定します。 これは、keytoolEnter key password for $(AndroidSigningKeyAlias) ($(AndroidSigningKeyAlias) のキーのパスワードを入力) を求めたときに入力される値です。

このプロパティは env: プレフィクスと file: のプレフィクスもサポートし、これらのプレフィクスを使って、パスワードが格納された環境変数やファイルを指定できます。 これらのオプションを使用すると、ビルド ログにパスワードが表示されないようにすることができます。

たとえば、AndroidSigningPassword という名前の環境変数を使用するには、次のようにします。

<PropertyGroup>
  <AndroidSigningKeyPass>env:AndroidSigningPassword</AndroidSigningKeyPass>
</PropertyGroup>

C:\Users\user1\AndroidSigningPassword.txt にあるファイルを使用するには、次のようにします。

<PropertyGroup>
  <AndroidSigningKeyPass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningKeyPass>
</PropertyGroup>

Note

env: プレフィックスは、$(AndroidPackageFormat)aab に設定されている場合はサポートされません。

AndroidSigningKeyStore

keytool で作成されたキーストア ファイルのファイル名を指定します。 これは、keytool -keystore オプションで指定された値に対応します。

AndroidSigningStorePass

$(AndroidSigningKeyStore) へのパスワードを指定します。 これは、キーストア ファイルを作成していて、Enter keystore password: (キーストア パスワードを入力) で求められたときに、keytool に指定する値です。

このプロパティは env: プレフィクスと file: のプレフィクスもサポートし、これらのプレフィクスを使って、パスワードが格納された環境変数やファイルを指定できます。 これらのオプションを使用すると、ビルド ログにパスワードが表示されないようにすることができます。

たとえば、AndroidSigningPassword という名前の環境変数を使用するには、次のようにします。

<PropertyGroup>
  <AndroidSigningStorePass>env:AndroidSigningPassword</AndroidSigningStorePass>
</PropertyGroup>

C:\Users\user1\AndroidSigningPassword.txt にあるファイルを使用するには、次のようにします。

<PropertyGroup>
  <AndroidSigningStorePass>file:C:\Users\user1\AndroidSigningPassword.txt</AndroidSigningStorePass>
</PropertyGroup>

Note

env: プレフィックスは、$(AndroidPackageFormat)aab に設定されている場合はサポートされません。

AndroidSigningPlatformKey

apk の署名に使用するキー ファイルを指定します。 これは system アプリケーションをビルドするときにのみ使用されます。

AndroidSigningPlatformCert

apk の署名に使用する証明書ファイルを指定します。 これは system アプリケーションをビルドするときにのみ使用されます。

AndroidStripILAfterAOT

AOT コンパイル メソッドの メソッド本体 を削除するかどうかを指定する bool プロパティ。

既定値は falseであり、AOT コンパイル済みメソッドのメソッド本体 削除されません

trueに設定すると、$(AndroidEnableProfiledAot)は既定でfalseに設定されます。 つまり、リリース構成ビルドでは、 $(RunAOTCompilation) が既定で true されます。AOT は 何でも有効になります。 これにより、アプリのサイズが増える可能性があります。 この動作は、 $(AndroidEnableProfiledAot) をプロジェクト ファイル内の true に明示的に設定することでオーバーライドできます。

.NET 8 では、このプロパティのサポートが追加されました。

AndroidSupportedAbis

.apk に含める必要がある ABI のセミコロン (;) で区切られたリストを含む文字列プロパティ。

サポートされている値は次のとおりです。

  • armeabi-v7a
  • x86
  • arm64-v8a
  • x86_64

AndroidTlsProvider

このプロパティは廃止されているため、使用しないでください。

AndroidUseAapt2

開発者がパッケージ化するために aapt2 ツールの使用を制御することを許可するブール型プロパティ。 既定では、これは True になります。

このプロパティを false に設定することはできません。

AndroidUseApkSigner

jarsigner ではなく apksigner ツールを使用することを開発者に許可するブール型プロパティ。

AndroidUseDefaultAotProfile

開発者が既定の AOT プロファイルの使用を抑制できるようにするブール型プロパティ。

既定の AOT プロファイルを抑制するには、このプロパティを false に設定します。

AndroidUseDesignerAssembly

ビルド システムがResource.Designer.cs ファイルにアポートされた_Microsoft.Android.Resource.Designer.dllを生成するかどうかを制御する bool プロパティ。 この利点は、アプリケーションが小さくなり、起動時間が短縮されるという利点があります。

既定値は .NET 8 で true されます。

下位互換性を維持する場合は、Nuget 作成者として 3 つのバージョンのアセンブリを出荷することをお勧めします。 1 つは MonoAndroid 用、1 つは net6.0-android 用、1 つは net8.0-android 用です。 これを行うには、 Xamarin.Legacy.Sdk を使用します。 これは、Nuget ライブラリ プロジェクトがプロジェクト内の AndroidResource 項目を使用する場合、または依存関係を介して使用する場合にのみ必要です。

<TargetFrameworks>monoandroid90;net6.0-android;net8.0-android</TargetFrameworks>

または、クラシックと net7.0-android の両方が非推奨になるまで、この設定をオフにします。

この設定をオフにすることを選択した .NET 8 プロジェクトでは、それを使用する参照を使用できません。 この機能が有効になっていないプロジェクトでこの機能が有効になっているアセンブリを使用しようとすると、 XA1034 ビルド エラーが発生します。

.NET 8 で追加されました。

AndroidUseInterpreter

.apk に通常の JIT ではなく mono "インタープリター" が含まれるようにするブール型プロパティ。

試験的です。

AndroidUseLegacyVersionCode

開発者が versionCode の計算を Xamarin.Android 8.2 前の動作に戻すことを許可するブール型プロパティ。 これは、Google Play ストアに既存のアプリケーションがある開発者に向けてのみ使用する必要があります。 新しい $(AndroidVersionCodePattern) プロパティを使用することを強くお勧めします。

AndroidUseManagedDesignTimeResourceGenerator

デザイン時のビルドを、aapt ではなく管理対象リソース パーサーの使用に切り替えるブール型プロパティ。

AndroidUseNegotiateAuthentication

AndroidMessageHandlerでの NTLMv2/Negotiate 認証のサポートを有効にするブール型プロパティ。 既定値は Falseです。

.NET 7 で追加されました。

AndroidUseSharedRuntime

このプロパティは廃止されているため、使用しないでください。

AndroidVersionCode

AndroidManifest.xml ファイル内の /manifest/@android:versionCode の代替として使用できる MSBuild プロパティ。 この機能をオプトインするには、<GenerateApplicationManifest>true</GenerateApplicationManifest> も有効にする必要があります。 .NET 6 では今後、これが既定値になります。

$(AndroidCreatePackagePerAbi)$(AndroidVersionCodePattern) が使用されている場合、このプロパティは無視されます。

@android:versionCode は、Google Play リリースごとにインクリメントする必要がある整数値です。 /manifest/@android:versionCode の要件の詳細については、Android のドキュメントを参照してください。

AndroidVersionCodePattern

開発者がマニフェスト内の versionCode をカスタマイズできるようにする文字列プロパティ。 versionCode の決定に関する情報は、「Creating the Version Code for the APK」 (APK のバージョン コードの作成) を参照してください。

いくつかの例では、abiarmeabi でマニフェスト内の versionCode123 の場合、$(AndroidCreatePackagePerAbi) が True のときには {abi}{versionCode} により 1123 の versionCode が生成され、それ以外のときは 123 の値が生成されます。 abix86_64 でマニフェスト内の versionCode44 です。 これにより、$(AndroidCreatePackagePerAbi) が True の場合には 544 が生成され、それ以外の場合は 44 の値が生成されます。

versionCode0 でレフト パディングしているため、レフト パディングの書式文字列 {abi}{versionCode:0000} を含めると、50044 が生成されます。 または、 などの 10 進パディングを使用することもできます。{abi}{versionCode:D4} は前の例と同じ動作になります。

値は整数である必要があるため、'0' と 'Dx' のパディングの書式文字列のみがサポートされます。

事前定義済みのキー項目

  • abi - アプリのターゲットとなる abi を挿入します

    • 2 – armeabi-v7a
    • 3 - x86
    • 4 - arm64-v8a
    • 5 - x86_64
  • minSDK - AndroidManifest.xml からサポートされている Sdk の最小値を挿入するか、定義されていない場合は 11 を挿入します。

  • versionCode - Properties\AndroidManifest.xml から直接バージョン コードを使用します。

$(AndroidVersionCodeProperties) プロパティ (次で定義) を使用してカスタム項目を定義することができます。

既定では、値は {abi}{versionCode:D6} に設定されます。 開発者が古い動作を保持する必要がある場合は、$(AndroidUseLegacyVersionCode) プロパティを true に設定することで既定値をオーバーライドできます。

AndroidVersionCodeProperties

$(AndroidVersionCodePattern) で使用するために、開発者がカスタム項目を定義できるようにする文字列プロパティ。 これらは key=value ペアの形式です。 value 内のすべての項目は整数値である必要があります。 (例: screen=23;target=$(_AndroidApiLevel))。 ご覧のとおり、既存またはカスタムの MSBuild プロパティを文字列で利用することができます。

ApplicationId

AndroidManifest.xml ファイル内の /manifest/@package の代替として使用できる MSBuild プロパティ。 この機能をオプトインするには、<GenerateApplicationManifest>true</GenerateApplicationManifest> も有効にする必要があります。 .NET 6 では今後、これが既定値になります。

/manifest/@package の要件の詳細については、Android のドキュメントを参照してください。

ApplicationTitle

AndroidManifest.xml ファイル内の /manifest/application/@android:label の代替として使用できる MSBuild プロパティ。 この機能をオプトインするには、<GenerateApplicationManifest>true</GenerateApplicationManifest> も有効にする必要があります。 .NET 6 では今後、これが既定値になります。

/manifest/application/@android:label の要件の詳細については、Android のドキュメントを参照してください。

ApplicationVersion

AndroidManifest.xml ファイル内の /manifest/@android:versionName の代替として使用できる MSBuild プロパティ。 この機能をオプトインするには、<GenerateApplicationManifest>true</GenerateApplicationManifest> も有効にする必要があります。 .NET 6 では今後、これが既定値になります。

/manifest/@android:versionName の要件の詳細については、Android のドキュメントを参照してください。

AotAssemblies

アセンブリをネイティブ コードにコンパイルし、アプリケーションに含めるかどうかを決定するブール型プロパティ。 このプロパティは既定で False です。

.NET 7 では非推奨です。 $(AotAssemblies)のサポートは今後のリリースで削除されるため、代わりに新しい$(RunAOTCompilation) MSBuild プロパティに移行してください。

AProfUtilExtraOptions

aprofutil に渡す追加のオプション。

BeforeBuildAndroidAssetPacks

このプロパティに記載されている MSBuild ターゲットは、 AssetPack 項目がビルドされる直前に実行されます。

.NET 9 で追加

BeforeGenerateAndroidManifest

このプロパティに一覧表示されている MSBuild ターゲットは、_GenerateJavaStubs の前に直接実行されます。

構成

使用するビルド構成 ("Debug" や "Release" など) を指定します。 Configuration プロパティは、ターゲットの動作を決定するその他のプロパティの既定値を決定するために使用されます。 追加の構成は、IDE 内で作成できます。

"既定" では、Debug 構成によって、Install および SignAndroidPackage ターゲットが生成され、動作する上で他のファイルやパッケージの存在が必要となる、より小さい Android パッケージが作成されます。

既定の Release 構成によって Install および SignAndroidPackage ターゲットが生成されます。これらが作成する Android パッケージは、"スタンドアロン" であり、他のパッケージやファイルをインストールしなくても使用できます。

DebugSymbols

$(DebugType) プロパティと組み合わせて、Android パッケージが "デバッグ可能" かどうかを決定するブール値。 デバッグ可能なパッケージは、デバッグ シンボルを含んでいて、//application/@android:debuggable 属性true に設定し、INTERNET アクセス許可を自動的に追加して、デバッガーがプロセスにアタッチできるようにします。 DebugSymbolsTrue "かつ" DebugType が空の文字列または Full の場合、アプリケーションはデバッグ可能です。

DebugType

ビルドの一部として生成するためのデバッグ シンボルの型を指定します。これはアプリケーションがデバッグ可能かどうかにも影響します。 使用可能な値 :

  • Full: 完全なシンボルが生成されます。 DebugSymbols MSBuild プロパティも True の場合、アプリケーション パッケージはデバッグ可能です。

  • PdbOnly: "PDB" シンボルが生成されます。 アプリケーション パッケージはデバッグ可能ではありません。

DebugType が設定されていないか、空の文字列の場合、DebugSymbols プロパティが、アプリケーションがデバッグ可能かどうかを制御します。

EmbedAssembliesIntoApk

アプリのアセンブリをアプリケーション パッケージに埋め込む必要があるかどうかを決定するブール型プロパティ。

このプロパティは、リリース ビルドには True、デバッグ ビルドには False にする必要があります。 高速展開でターゲット デバイスがサポートされない場合は、デバッグ ビルドでこのプロパティを True にする必要がある場合があります

このプロパティが False の場合、$(AndroidFastDeploymentType) MSBuild プロパティは .apk に埋め込まれるものも制御するため、デプロイおよびリビルド時間が影響を受ける場合があります。

EnableLLVM

アセンブリをネイティブ コードに Ahead-of-Time コンパイルするときに、LLVM を使用するかどうかを決定するブール型プロパティ。

このプロパティが有効になっているプロジェクトをビルドするには、Android NDK がインストールされている必要があります。

このプロパティは既定で False です。

$(AotAssemblies) MSBuild プロパティが True でない限り、このプロパティは無視されます。

EnableProguard

proguard を Java コードをリンクするパッケージ化プロセスの一部として実行するかどうかを決定するブール型プロパティ。

このプロパティは既定で False です。

True の場合、@(ProguardConfiguration) ファイルは proguard の実行を制御するために使用されます。

GenerateApplicationManifest

最終的な AndroidManifest.xml ファイルに値を出力する次の MSBuild プロパティを有効または無効にします。

既定値 $(GenerateApplicationManifest)trueです。

JavaMaximumHeapSize

.dex ファイルをパッケージ化プロセスの一部としてビルドする際に使用する java-Xmx パラメーター値を指定します。 指定されていない場合、-Xmx オプションでは java1G の値が指定されます。 その他のプラットフォームに比べて、Windows では一般的にこの値が必要なことがわかりました。

_CompileDex ターゲットが java.lang.OutOfMemoryError をスローする場合には、このプロパティを指定する必要があります。

以下を変更することで値をカスタマイズします。

<JavaMaximumHeapSize>1G</JavaMaximumHeapSize>

JavaOptions

.dex ファイルのビルド時に、java に渡すコマンド ライン オプションを指定します。

JarsignerTimestampAuthorityCertificateAlias

このプロパティを使用すると、タイムスタンプ機関のキーストアに別名を指定できます。 詳細については、Java の署名のタイムスタンプのサポートに関するドキュメントを参照してください。

<PropertyGroup>
    <JarsignerTimestampAuthorityCertificateAlias>Alias</JarsignerTimestampAuthorityCertificateAlias>
</PropertyGroup>

JarsignerTimestampAuthorityUrl

このプロパティでは、タイムスタンプ機関サービスへの URL を指定できます。 これを使用して、.apk 署名に確実にタイムスタンプを含めるようにすることができます。 詳細については、Java の署名のタイムスタンプのサポートに関するドキュメントを参照してください。

<PropertyGroup>
    <JarsignerTimestampAuthorityUrl>http://example.tsa.url</JarsignerTimestampAuthorityUrl>
</PropertyGroup>

LinkerDumpDependencies

リンカーの依存関係ファイルの生成を有効にするブール型プロパティ。 このファイルは、illinkanalyzer ツールに対する入力として使用できます。

linker-dependencies.xml.gz という名前の依存関係ファイルがプロジェクト ディレクトリに書き込まれます。 .NET5 または 6 では、obj/<Configuration>/android<ABI>/linked ディレクトリ内のリンク アセンブリの横に書き込まれます。

既定値は Falseです。

MandroidI18n

照合順序や並べ替えテーブルなど、アプリケーションに含まれる国際化サポートを指定します。 値は、次の大文字と小文字を区別しない値の 1 つ以上のコンマ区切りまたはセミコロン区切りのリストです。

  • None: 追加のエンコーディングは含まれません。

  • All: 利用可能なすべてのエンコーディングが含まれます。

  • CJK: "日本語 (EUC)" [enc-jp、CP51932]、"日本語 (Shift-JIS)" [iso-2022-jp、shift_jis、CP932]、"日本語 (JIS)" [CP50220]、"簡体中国語 (GB2312)" [gb2312、CP936]、"韓国語 (UHC)" [ks_c_5601-1987、CP949]、"韓国語 (EUC)" [euc-kr、CP51949]、"繁体中国語 (Big5)" [big5、CP950]、および "簡体中国語 (GB18030)" [GB18030、CP54936] などの中国語、日本語、および韓国語のエンコーディングが含まれます。

  • MidEast: "トルコ語 (Windows)" [iso-8859-9、CP1254]、"ヘブライ語 (Windows)" [windows-1255、CP1255]、"アラビア語 (Windows)" [windows-1256、CP1256]、"アラビア語 (ISO)" [iso-8859-6、CP28596]、"ヘブライ語 (ISO)" [iso-8859-8、CP28598]、"ラテン 5 (ISO)" [iso-8859-9、CP28599]、および "ヘブライ語 (Iso 代替)" [iso-8859-8、CP38598] などの中東のエンコーディングが含まれます。

  • Other: "キリル語 (Windows)" [CP1251]、"バルト語 (Windows)" [iso-8859-4、CP1257]、"ベトナム語 (Windows)" [CP1258]、"キリル語 (KOI8-R)" [koi8-r、CP1251]、"ウクライナ語 (KOI8-U)" [koi8-u、CP1251]、"バルト語 (ISO)" [iso-8859-4、CP1257]、"キリル語 (ISO)" [iso-8859-5、CP1251]、"ISCII デーヴァナーガリー語" [x-iscii-de、CP57002]、"ISCII ベンガル語" [x-iscii-be、CP57003]、"ISCII タミール語" [x-iscii-ta、CP57004]、"ISCII テルグ語" [x-iscii-te、CP57005]、"ISCII アッサム語" [x-iscii-as、CP57006]、"ISCII オリヤー語" [x-iscii-or、CP57007]、"ISCII カンナダ語" [x-iscii-ka、CP57008]、"ISCII マラヤーラム語" [x-iscii-ma、CP57009]、"ISCII グジャラート語" [x-iscii-gu、CP57010]、"ISCII パンジャーブ語" [x-iscii-pa、CP57011]、および "タイ語 (Windows)" [CP874] などのその他のエンコードが含まれます。

  • Rare: "IBM EBCDIC (トルコ語)" [CP1026]、"IBM EBCDIC (オープン システム ラテン 1)" [CP1047]、"IBM EBCDIC (米国-カナダとユーロ)" [CP1140]、"IBM EBCDIC (ドイツとユーロ)" [CP1141]、"IBM EBCDIC (デンマーク/ノルウェーとユーロ)" [CP1142]、"IBM EBCDIC (フィンランド/スウェーデンとユーロ)" [CP1143]、"IBM EBCDIC (イタリアとユーロ)" [CP1144]、"IBM EBCDIC (ラテン アメリカ/スペインとユーロ)" [CP1145]、"IBM EBCDIC (イギリスとユーロ)" [CP1146]、"IBM EBCDIC (フランスとユーロ)" [CP1147]、"IBM EBCDIC (インターナショナルとユーロ)" [CP1148]、"IBM EBCDIC (アイスランド語とユーロ)" [CP1149]、"IBM EBCDIC (ドイツ)" [CP20273]、"IBM EBCDIC (デンマーク/ノルウェー)" [CP20277]、"IBM EBCDIC (フィンランド/スウェーデン)" [CP20278]、"IBM EBCDIC (イタリア)" [CP20280]、"IBM EBCDIC (ラテン アメリカ/スペイン)" [CP20284]、"IBM EBCDIC (イギリス)" [CP20285]、"IBM EBCDIC (日本語カタカナ拡張)" [CP20290]、"IBM EBCDIC (フランス)" [CP20297]、"IBM EBCDIC (アラビア語)" [CP20420]、"IBM EBCDIC (ヘブライ語)" [CP20424]、"IBM EBCDIC (アイスランド語)" [CP20871]、"IBM EBCDIC (キリル、セルビア語、ブルガリア語)" [CP21025]、"IBM EBCDIC (米国-カナダ)" [CP37]、"IBM EBCDIC (インターナショナル)" [CP500]、"アラビア語 (ASMO 708)" [CP708]、"中央ヨーロッパ言語 (DOS)" [CP852]、"キリル言語 (DOS)" [CP855]、"トルコ語 (DOS)" [CP857]、"西ヨーロッパ言語 (DOS とユーロ)" [CP858]、"ヘブライ語 (DOS)" [CP862]、"アラビア語 (DOS)" [CP864]、"ロシア語 (DOS)" [CP866]、"ギリシャ語 (DOS)" [CP869]、"IBM EBCDIC (ラテン 2)" [CP870]、"IBM EBCDIC (ギリシャ語)" [CP875] などのまれなエンコードが含まれます。

  • West: "西ヨーロッパ言語 (Mac)" [macintosh、CP10000]、"アイスランド語 (Mac)" [x-mac-icelandic、CP10079]、"中央ヨーロッパ言語 (Windows)" [iso-8859-2、CP1250]、"西ヨーロッパ言語 (Windows)" [iso-8859-1、CP1252]、"ギリシャ語 (Windows)" [iso-8859-7、CP1253]、"中央ヨーロッパ言語 (ISO)" [iso-8859-2、CP28592]、"ラテン 3 (ISO)" [iso-8859-3、CP28593]、"ギリシャ語 (ISO)" [iso-8859-7、CP28597]、"ラテン 9 (ISO)" [iso-8859-15、CP28605]、"OEM 米国" [CP437]、"西ヨーロッパ言語 (DOS)" [CP850]、"ポルトガル語 (DOS)" [CP860]、"アイスランド語 (DOS)" [CP861]、"フランス語 (カナダ) (DOS)" [CP863]、および "北欧語 (DOS)" [CP865] などの欧文のエンコードが含まれます。

<MandroidI18n>West</MandroidI18n>

MonoAndroidResourcePrefix

AndroidResource のビルド アクションで、ファイル名の先頭から削除される "パス プレフィックス" を指定します。 これにより、リソースがある場所を変更することができます。

既定値は Resources です。 Java プロジェクトの構造には、これを res に変更します。

MonoSymbolArchive

"実際の" ファイル名と行番号の情報をリリース スタック トレースから抽出するために、後で mono-symbolicate で使用するための .mSYM 成果物を作成するかどうかを制御するブール型プロパティ。

これは、デバッグ シンボルが有効になっている リリース アプリ に対しては、既定で True になっています: $(EmbedAssembliesIntoApk) が True、$(DebugSymbols) が True、および $(Optimize) が True。

RunAOTCompilation

アセンブリをネイティブ コードにコンパイルし、アプリケーションに含めるかどうかを決定するブール型プロパティ。 このプロパティは、Debug ビルドでは既定でFalseされ、Release ビルドの場合は既定でTrueされます。

この MSBuild プロパティは、Xamarin.Android の msBuild プロパティ $(AotAssemblies) 置き換えます。 これは、Blazor WASM に使用されるのと同じプロパティです。