Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Bu özellik yalnızca .NET 9+ ile kullanılabilir.
Android için .NET için Java bağlama kitaplıkları oluştururken karşılaşılan yaygın bir sorun, gerekli Java bağımlılıklarını sağlamamasıdır. Bağlama işlemi eksik bağımlılıklar gerektiren API'yi yoksayar, bu nedenle istenen API'nin büyük bölümlerinin bağlı olmamasıyla sonuçlanabilir.
.NET derlemelerinden farklı olarak, Java kitaplığı paketteki bağımlılıklarını belirtmez. Bağımlılık bilgileri POM dosyaları olarak adlandırılan dış dosyalarda depolanır. Doğru bağımlılıkları sağlamak için bu bilgileri kullanmak için bağlama projesine ek bir dosya katmanı eklenmelidir.
Tavsiye
Bu sistemle etkileşim kurmanın tercih edilen yolu, gerekli POM dosyalarını otomatik olarak indirecek olan kullanmaktır <AndroidMavenLibrary> .
Örneğin:
<AndroidMavenLibrary Include="com.squareup.okio:okio" Version="1.17.4" />
otomatik olarak genişletilir:
<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.
Ancak burada belgelenen derleme öğelerini kullanarak Java bağımlılık doğrulamasını el ile kabul etmek de mümkündür.
Specification
Java bağımlılık doğrulamasını manuel olarak etkinleştirmek için Manifest ve JavaArtifact özniteliklerini bir <AndroidLibrary> öğesine ekleyin.
<!-- 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>
Eğer my_binding_library.pom karşılanmayan bağımlılıkları belirtiyorsa, bağlama projesinin derlenmesi doğrulama hatalarına yol açmalıdır.
Örneğin:
error : Java dependency 'androidx.collection:collection' version '1.0.0' is not satisfied.
Bu hataların görülmesi veya hata olmaması Java bağımlılık doğrulamasının çalıştığını göstermelidir. Eksik bağımlılık hatalarını düzeltmek için Java Bağımlılıklarını Çözümleme kılavuzunu izleyin.
Ek POM dosyaları
POM dosyaları bazen kullanımda olan ve bunları yukarıdaki örnekten daha karmaşık hale getiren bazı isteğe bağlı özelliklere sahip olabilir.
Yani, POM dosyası bir "üst" POM dosyasına bağlı olabilir:
<parent>
<groupId>com.squareup.okio</groupId>
<artifactId>okio-parent</artifactId>
<version>1.17.4</version>
</parent>
Ayrıca, pom dosyası başka bir POM dosyasından bağımlılık bilgilerini "içeri aktarabilir":
<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>
Bağımlılık bilgileri, bu ek POM dosyalarına da erişim olmadan doğru bir şekilde belirlenemez ve aşağıdaki gibi bir hatayla sonuçlanır:
error : Unable to resolve POM for artifact 'com.squareup.okio:okio-parent:1.17.4'.
Bu durumda için POM dosyasını com.squareup.okio:okio-parent:1.17.4sağlamamız gerekir:
<!-- 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>
"Ana" ve "İthal" POM'lerin kendi ana ve ithal POM'leri de olabileceğini unutmayın, bu nedenle tüm POM dosyaları çözümlenene kadar bu adımın tekrarlanması gerekebilir.
Ayrıca, <AndroidMavenLibrary> kullanıyorsanız bunların tümü otomatik olarak işlenmelidir.
Bu noktada bağımlılık hataları varsa, eksik bağımlılık hatalarını düzeltmek için Java Bağımlılıklarını Çözümleme kılavuzunu izleyin.