Android - É possível criar uma biblioteca personalizada para usar em várias aplicações?

StackOverflow https://stackoverflow.com/questions/1828448

  •  11-09-2019
  •  | 
  •  

Pergunta

É possível criar uma biblioteca personalizada no Android (com seus próprios recursos de layout) para uso em várias aplicações Android?

  • Eu criei um arquivo .jar regulares * mas quando eu tentei criar / estilo meus pontos de vista de forma dinâmica a maioria das propriedades não funcionam. Mesmo referenciar estilos simples a partir do arquivo android.jar tais como android.attr.listSeparatorTextViewStyle não funcionou.

  • Eu criei um projeto Android, sem qualquer atividade, tendo seus arquivos de recursos próprios e, em seguida, referenciado neste projeto de outro projeto Android para usar em seu caminho de construção. Tudo parece funcionar bem, mas o emulador pára de funcionar (com nenhuma mensagem de erro significativa no LogCat ) quando tento executar o projeto.

Estou faltando alguma coisa?

Foi útil?

Solução

Bem, eu acho que há uma maneira de fazer isso (embora eu não tente, eu), mas exige que os usuários de sua biblioteca ter que construir seus APKs manualmente através aapt.

O problema é este: A JAR você está exportando contém o arquivo de classe R que detém os IDs de recursos de sua biblioteca. Assim, qualquer aplicativo pode acessar esses IDs, basta ligar o seu JAR. No entanto, isso não é suficiente, porque, por padrão, apenas os recursos no res do app / pasta são empacotados com o APK. Assim, você tem que criar o APK-se usando aapt, dizendo-lhe para também incluir quaisquer recursos da sua biblioteca. Verifique a ajuda ferramenta aapt para mais informações.

Uma vez que isto implica que os usuários de sua biblioteca tem de introduzir um processo de construção manual (ou pelo menos modificá-lo), o que torna para uma experiência pobre.

Outras dicas

pode ser tarde para responder, mas a este que é interessante. Configurando um Projeto Biblioteca

Uma Android projeto de biblioteca é um projeto de desenvolvimento que mantém compartilhada código-fonte Android e recursos. Outros projetos de aplicativos Android pode referenciar o projeto de biblioteca e, tempo de construção, incluem a sua compilado fontes em seus arquivos .apk. Múltiplo projectos de aplicação pode fazer referência a mesmo projeto biblioteca e um único projeto de aplicativo pode fazer referência a projetos múltiplos da biblioteca.

Se você tem o código-fonte e recursos que são comuns a vários projetos de aplicativos, você pode mover -los para um projeto de biblioteca para que ele é mais fácil de manter do outro lado aplicações e versões. Aqui estão alguns cenários comuns em que você poderia fazer uso de projetos de biblioteca:

É possível criar um personalizado biblioteca no android (tendo o seu próprio recursos de layout) para uso em várias aplicações Android?

No. JARs não pode ter recursos. Você pode compartilhar o código desta forma, mas os recursos têm de residir nas aplicações que reutilizam os JARs.

Mesmo referenciar estilos simples de o arquivo android.jar tais como android.attr.listSeparatorTextViewStyle não funcionou.

Certifique-se de que você está ligando seu JAR contra android.jar. Você pode ver muitos exemplos disso nos componentes CWAC no meu github página .

Isso ainda é verdade com R21? Eu sou capaz de exportar um projeto de biblioteca no arquivo jar e utilizado em outros projetos de clientes com sucesso, tanto de código sábio e arquivar sábio ativos acessando.

http://developer.android.com/tools/projects/index.html ainda tem a seguinte instrução que não parece mais verdade:

Você não pode exportar um projeto de biblioteca a uma biblioteca Um arquivo JAR não pode ser distribuída como um arquivo binário (como um arquivo JAR). Isto irá ser adicionados em uma versão futura do SDK Tools.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top