Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Depois que uma biblioteca Java for associada a
Referência do projeto - Se o projeto de associação e o projeto de aplicativo estiverem no mesmo arquivo de solução, usar a
<ProjectReference>
geralmente é a maneira mais fácil de consumir a associação.Pacote NuGet – um pacote NuGet é ideal para publicação pública ou para um ambiente de desenvolvimento distribuído interno que tem um servidor NuGet interno.
Referência de arquivo – um aplicativo consumidor pode adicionar diretamente a
<Reference>
a uma associação.dll
se nem o projeto de associação nem um servidor NuGet estiverem disponíveis.
Controlando opções de encadernação e empacotamento
Um projeto de biblioteca de associações tem duas opções para controlar se um <AndroidLibrary>
é associado e redistribuído:
- Bind (
true
false
/) - O padrão étrue
, o que significa que as associações gerenciadas são criadas para o .<AndroidLibrary>
Definir comofalse
significa que a biblioteca Java será incluída na saída, mas não terá ligações gerenciadas. Isso é útil se a biblioteca for uma dependência necessária de outra biblioteca Java, mas não será chamada de C#.
<!-- 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" />
- Pack (
true
/false
) – o padrãotrue
é , o que significa que o especificado<AndroidLibrary>
será incluído na saída (como um pacote NuGet). Definir comofalse
significa que a biblioteca Java não será incluída na saída. Este é um cenário raro caso a dependência já esteja sendo fornecida por meios alternativos.
<!-- 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" />
ProjectReference
Se o projeto de associação e o projeto de aplicativo estiverem no mesmo arquivo de solução, usar um <ProjectReference>
geralmente é a maneira mais fácil de consumir a associação:
<ProjectReference Include="mybindinglib.csproj" />
O sistema de compilação será responsável por adicionar as associações gerenciadas, bem como quaisquer .jar
/.aar
arquivos ao projeto do aplicativo.
Pacote NuGet
Como uma propriedade herdada de projetos no estilo SDK do .NET, qualquer biblioteca de associações pode ser empacotada trivialmente em um pacote NuGet redistribuível usando o comando "Pack" no Visual Studio ou na linha de comando:
dotnet pack
A biblioteca de associações, bem como a biblioteca Java, serão incluídas no pacote NuGet:
Use o atributo documentado Pack
acima para controlar quais bibliotecas Java são desejadas no pacote NuGet.
Os pacotes NuGet podem ser personalizados usando os elementos padrão do .NET MSBuild.
Referência de arquivo
Se nenhuma das opções acima for possível, a associação .dll
poderá ser referenciada diretamente com um <Reference>
elemento. Observe que todas as bibliotecas Java que fazem parte da saída do projeto de vinculação devem estar no mesmo diretório que a vinculação .dll
.
Se você mover/copiar apenas a associação .dll
para outro local e também não mover/copiar nenhum .jar
/.dll
arquivo, eles não terminarão em seu aplicativo e a associação falhará em tempo de execução.
Importante
No Xamarin.Android clássico, usar uma ação de item como EmbeddedJar
colocaria o .jar
arquivo dentro do .dll
e apenas um arquivo seria necessário. O suporte para isso foi removido no .NET para Android porque aumentou muito o tempo de compilação do aplicativo para verificar e extrair arquivos de biblioteca Java incorporados. Todos os arquivos necessários .jar
/.dll
DEVEM estar localizados no mesmo diretório que a vinculação..dll