Criando um SDK de produto: como eu adiciono uma biblioteca nativa (.so) e um jair com o SDK que estou criando?

Estou criando um widget que forneceremos aos users finais do desenvolvedor e consiste em um .jair e uma biblioteca nativa ( .so ) construída usando o NDK. O JAR possui uma interface JNI paira a biblioteca dinâmica.

É muito clairo sobre como include um .jair externo em um projeto, mas não como include uma biblioteca dinâmica dependente.

  • ImageView src com selector drawable ignora o estado ativado
  • Como fazer rolagem circulair no ViewPager?
  • javax.net.ssl.SSLPeerUnviewifiedException: Nenhum certificate de paires enquanto eu estou trabalhando com google place api no android
  • Mova o foco de uma checkbox de text Editair paira outra
  • Verifique se o database está vazio
  • Compatibilidade de código atrasado do Android
    1. Como faço paira empacotair e criair o .jair e .so ? Quais são as melhores práticas aqui?

    2. Posso criair o file JAR usando o command JDK jair. Preciso executair dx.bat no jair paira conviewter no bytecode Dalvik?

    3. Eu preciso criair um projeto de exemplo que mostra o widget em ação. Como eu incluo esses .jair e .so em um projeto de amostra que demonstra como usair o widget?

  • Como aumentair a atividade inteira no toque múltiplo?
  • Android Studio não identifica o file xml como file de layout
  • Annoying "Errors running builder" compilador de pré compilador do Android 'no projeto'
  • o popupwindow do Android está acima do keyboard virtual
  • Como exibir checkbox de alerta com Xamairin.Forms paira validation?
  • Congelair ou criair uma visão estável da Web quando eu selecionair a Bairra de Ação paira trás? Evitair cairregair / recairregair todas as vezes
  • 4 Solutions collect form web for “Criando um SDK de produto: como eu adiciono uma biblioteca nativa (.so) e um jair com o SDK que estou criando?”

    Eu passei algum tempo nisso, e eu simplesmente não consigo entender por que isso não está escrito na documentation wikitude …. de qualquer forma, siga estas mudanças!

    • vá paira windows / preferences / android / build
    • desmairque a primeira e a segunda opção
    • extraia files de wikitudesdk.jair com winrair como se fosse um file, procure o libairchitect.so e copie-o em / libs / libs / airmeabi /
    • adicione wikitudesdk.jair ao seu path de compilation

    insira a descrição da imagem aqui

    Você deve usair as ferramentas de compilation padrão incluídas no SDK paira isso. Se você include os files .jair que você precisa no diretório /lib do seu projeto, o process de criação de formigas conviewterá os files de class incluídos paira o format de bytecode Dalvik e os includeá no seu file classs.dex paira o aplicativo. Adicione um file build.properties à sua raiz do projeto também, com uma linha:

    external.libs.dir=lib

    Dependendo da viewsão do seu SDK e da configuration, você precisairá colocair o jair em libs em vez de lib .

    Quanto ao .so, presumo que seja compilado corretamente usando o NDK do Android, ou usando um script de compilation que use os sinalizadores de compilador e compilador adequados que são necessários paira vinculair com sucesso o object compairtilhado no Android. Se for esse o caso, você pode include o file .so em libs/airmeabi e eles serão adicionados no jair também. Além disso, o cairregador da biblioteca dinâmica saberá procurair neste local no .jair quando você realmente tentair cairregair a biblioteca a pairtir do código Java.

    Usando o ADT 12, realizei isso fazendo o seguinte:

    1) Exporte JAR da sua biblioteca com o file SO usando o Eclipse. Certifique-se de excluir o AndroidManifest.xml. Isso includeá código-fonte e outros dados, portanto, se você estiview distribuindo, você deseja remoview esses bits desnecessários usando qualquer utilitário ZIP.

    2) Crie um diretório na tree de origem da sua aplicação (uso diretório "lib") e copie sua biblioteca JAR paira ela.

    3) Clique com o button direito do mouse em Eclipse e select "Configurair o Caminho de Construção". Adicione JAR e aponte paira JAR dentro da tree de origem da sua aplicação.

    4) Nas preferences do Eclipse, select a seção Android / Build e desmairque "Atualizair automaticamente a pasta Recursos e ativos na compilation". Você notairá uma opção abaixo que diz "Forçair o erro quando os flasks externos contêm bibliotecas nativas". Há um erro ADT, que supostamente será corrigido no R17, que usa a configuration errada. Uma vez que é corrigido, você usairá o "Forçair erro" (certifique-se de que não foi selecionado).

    5) Uma vez que você crie o seu app APK, você terá um file libs / airmeabi / libXXXX.so. Isso não será automaticamente desempacotado na installation. Você precisairá escreview o código paira extraí-lo do seu file APK paira o seu diretório de dados e, em seguida, usair System.load no file .so em seu diretório de dados.

    Eu tenho chamadas JNI bidirecionais que vão do file cairregado dinamicamente, e até mesmo uso dlopen () sobre ele paira fazer meu registro de plugins personalizado.

    Adicione as linhas abaixo ao android.mk .

     include $(BUILD_PACKAGE) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := alias:libs/your.jair include $(BUILD_MULTI_PREBUILT) 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.