Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Miután egy Java-kódtárat kötöttek az Androidhoz készült .NET-ben való használathoz, többféleképpen is felhasználható:
Projekthivatkozás – Ha a kötési projekt és az alkalmazásprojekt ugyanabban a megoldásfájlban található, a kötés fogyasztásának legegyszerűbb módja általában egy
<ProjectReference>használata.NuGet-csomag – A NuGet-csomag ideális nyilvános közzétételhez vagy belső NuGet-kiszolgálóval rendelkező belső elosztott fejlesztési környezethez.
Fájlhivatkozás – A fogyasztó alkalmazás közvetlenül hozzáadhat egy
<Reference>egy kötéshez.dll, ha sem a kötési projekt, sem a NuGet-kiszolgáló nem érhető el.
Kötési és csomagolási lehetőségek szabályozása
A kötéstárprojektek kétféleképpen szabályozhatók, ha egy <AndroidLibrary> kötés meg van kötve, és újraterjesztésre kerül:
-
Kötés (
true/false) - Alapértelmezés szerinttrue, ami azt jelenti, hogy a megadott<AndroidLibrary>felügyelt kötések jönnek létre. A beállítás azt jelenti, hogyfalsea Java-kódtár szerepelni fog a kimenetben, de nem lesznek felügyelt kötések. Ez akkor hasznos, ha a könyvtár egy másik Java-könyvtár szükséges függősége, de nem fogják C#-ból meghívni.
<!-- Java library will have C# bindings and be included in the output -->
<AndroidLibrary Include="okhttp-4.12.0.jar" />
<!-- Java library will not have C# bindings but will still be included in the output -->
<AndroidLibrary Include="okio-3.9.0.jar" Bind="false" />
-
Csomag (
true/false) – Alapértelmezett érték, ami azt jelenti, hogytruea megadott<AndroidLibrary>elem szerepelni fog a kimenetben (például Egy NuGet-csomag). Afalseértékre állítás azt jelenti, hogy a Java könyvtár nem kerül bele a kimenetbe. Ez egy ritka eset, ha a függőséget már alternatív eszközökkel biztosítják.
<!-- Java library will have C# bindings and be included in the output -->
<AndroidLibrary Include="okhttp-4.12.0.jar" />
<!-- Java library will have C# bindings but will *not* be included in the output -->
<AndroidLibrary Include="okio-3.9.0.jar" Pack="false" />
Projektreferencia
Ha a kötési projekt és az alkalmazásprojekt ugyanabban a megoldásfájlban található, akkor általában a <ProjectReference> használata a legegyszerűbb módja a kötés használatának.
<ProjectReference Include="mybindinglib.csproj" />
A buildrendszer feladata lesz a felügyelt kötések .jar/.aar és a fájlok hozzáadása az alkalmazásprojekthez.
NuGet-csomag
A .NET SDK-stílusú projektektől örökölt tulajdonságként a kötéstárak triviálisan becsomagolhatók egy terjeszthető NuGet-csomagba a Visual Studio "Pack" parancsával vagy a parancssorból:
dotnet pack
A kötések kódtára és a Java-kódtár a NuGet-csomag része lesz:
Pack A fent dokumentált attribútummal szabályozhatja, hogy mely Java-kódtárakat kívánja használni a NuGet-csomag.
A NuGet-csomagok testre szabhatók a standard .NET MSBuild elemekkel.
Fájlhivatkozás
Ha a fenti lehetőségek közül egyik sem lehetséges, a kötés .dll közvetlenül hivatkozható egy <Reference> elemmel. Vegye figyelembe, hogy a kötésprojekt kimenetének részét képező Java-kódtáraknak ugyanabban a könyvtárban kell lenniük, mint a kötés .dll.
Ha csak a kötést .dll helyezi át vagy másolja egy másik helyre, és nem helyezi át vagy másolja az .jar/.dll fájlokat is, azok nem kerülnek be az alkalmazásba, és a kötés futásidőben meghiúsul.
Fontos
A klasszikus Xamarin.Android esetében egy elemművelet, mint a EmbeddedJar, a .jar fájlt a .dll belsejébe helyezi, és csak egy fájlra van szükség. Ennek támogatása az Android .NET-ben el lett távolítva, mert jelentősen megnövelte az alkalmazások buildelési idejét a beágyazott Java-kódtárfájlok vizsgálatához és kinyeréséhez. A szükséges .jar/.dll fájlokat ugyanabban a könyvtárban kell elhelyezni, mint a kötést .dll.