Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Cette fonctionnalité est disponible uniquement dans .NET 9+.
Un problème courant lors de la création de bibliothèques de liaisons Java pour .NET pour Android ne fournit pas les dépendances Java requises. Le processus de liaison ignore l’API qui nécessite des dépendances manquantes. Cela peut entraîner de grandes parties de l’API souhaitée qui ne sont pas liées.
Contrairement aux assemblys .NET, une bibliothèque Java ne spécifie pas ses dépendances dans le package. Les informations de dépendance sont stockées dans des fichiers externes appelés fichiers POM. Pour consommer ces informations et s'assurer des dépendances correctes, une couche supplémentaire de fichiers doit être ajoutée à un projet de liaison.
Conseil
La meilleure façon d’interagir avec ce système consiste à utiliser <AndroidMavenLibrary> ce qui télécharge automatiquement les fichiers POM nécessaires.
Par exemple :
<AndroidMavenLibrary Include="com.squareup.okio:okio" Version="1.17.4" />
est automatiquement étendu pour :
<AndroidLibrary
Include="<MavenCacheDir>/Central/com.squareup.okio/okio/1.17.4/com.squareup.okio_okio.jar"
Manifest="<MavenCacheDir>/Central/com.squareup.okio/okio/1.17.4/com.squareup.okio_okio.pom"
JavaArtifact="com.squareup.okio:okio:1.17.4" />
<AndroidAdditionalJavaManifest
Include="<MavenCacheDir>/Central/com.squareup.okio/okio-parent/1.17.4/okio-parent-1.17.4.pom"
JavaArtifact="com.squareup.okio:okio-parent:1.17.4" />
etc.
Toutefois, il est également possible de choisir manuellement la vérification des dépendances Java à l’aide des éléments de build documentés ici.
Spécification
Pour choisir manuellement la vérification des dépendances Java, ajoutez les attributs Manifest et JavaArtifact à un élément <AndroidLibrary> :
<!-- JavaArtifact format is {GroupId}:{ArtifactId}:{Version} -->
<ItemGroup>
<AndroidLibrary
Include="my_binding_library.jar"
Manifest="my_binding_library.pom"
JavaArtifact="com.example:mybinding:1.0.0" />
</ItemGroup>
La génération maintenant du projet de liaison devrait entraîner des erreurs de vérification si my_binding_library.pom spécifie des dépendances qui ne sont pas remplies.
Par exemple :
error : Java dependency 'androidx.collection:collection' version '1.0.0' is not satisfied.
L’affichage de ces erreurs ou aucune erreur ne doit indiquer que la vérification des dépendances Java fonctionne. Suivez le guide de résolution des dépendances Java pour corriger les erreurs de dépendance manquantes.
Fichiers POM supplémentaires
Les fichiers POM peuvent parfois avoir des fonctionnalités facultatives qui les rendent plus complexes que l’exemple ci-dessus.
Autrement dit, un fichier POM peut dépendre d’un fichier POM « parent » :
<parent>
<groupId>com.squareup.okio</groupId>
<artifactId>okio-parent</artifactId>
<version>1.17.4</version>
</parent>
En outre, un fichier POM peut « importer » des informations de dépendance à partir d’un autre fichier POM :
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio-bom</artifactId>
<version>3.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Les informations de dépendance ne peuvent pas être déterminées avec précision sans avoir également accès à ces fichiers POM supplémentaires et entraînent une erreur comme :
error : Unable to resolve POM for artifact 'com.squareup.okio:okio-parent:1.17.4'.
Dans ce cas, nous devons fournir le fichier POM pour com.squareup.okio:okio-parent:1.17.4:
<!-- JavaArtifact format is {GroupId}:{ArtifactId}:{Version} -->
<ItemGroup>
<AndroidAdditionalJavaManifest
Include="com.square.okio.okio-parent.1.17.4.pom"
JavaArtifact="com.squareup.okio:okio-parent:1.17.4" />
</ItemGroup>
Notez que les POMs « Parent » et « Import » peuvent eux-mêmes avoir des POMs parents et importés, cette étape peut être répétée jusqu'à ce que tous les fichiers POM soient résolus.
Notez également que si vous utilisez <AndroidMavenLibrary>, cela devrait être géré automatiquement.
À ce stade, s’il existe des erreurs de dépendance, suivez le guide de résolution des dépendances Java pour corriger les erreurs de dépendance manquantes.