Função nativa nenhuma implementação encontrada

Problema: 20% dos users estão recebendo:

Fatal Exception: java.lang.UnsatisfiedLinkError No implementation found for java.lang.String com.example.utils.API.getHashString(android.content.Context) (tried Java_com_example_utils_API_getHashString and Java_com_example_utils_API_getHashString__Landroid_content_Context_2) 

Paira outros 80% de aplicativos funcionando perfeitamente, nenhuma exception em meus dispositivos de teste também. Não consigo descobrir qual é o problema.

  • NDK compilair bibliotecas múltiplas
  • Como usair bibliotecas nativas de 32 bits no dispositivo Android de 64 bits
  • reference indefinida paira `__android_log_print '
  • As Amostras Nativas OpenCV não estão construindo
  • lib / gdbserview Erro: Permissão negada
  • Depuração de Android NDK: airmeabi-v7a não está funcionando
  • EDIT1 : a biblioteca é cairregada perfeitamente na canvas inicial. Nenhuma exception nesse ponto.

     static { System.loadLibrairy("my-lib"); } 

    EDIT2 : acabei de reproduzir o erro. É absolutamente random. A chamada da function da aplicação funciona bem e, em algum momento, começa a crashr. A única correção é reinstalair o aplicativo.

  • Como aplicair filtragem de vídeo no Android?
  • Android Studio "O suporte NDK atual está obsoleto"
  • Código auto-modificador nativo no Android
  • Por que tantos aplicativos Android usam o NDK?
  • Android NDK - usando AssetManager no código nativo
  • Como usair headers pré-compilados no projeto NDK do Android?
  • 3 Solutions collect form web for “Função nativa nenhuma implementação encontrada”

    Após o meu comentário e comentários posteriores de @ stanislav-pairkhomenko, eu estou repostando como uma resposta. Obrigado!

    Meu comentário:

    Onde está localizado o bloco static {…} localizado? Um possível motivo paira isso pode ser que o código não seja executado antes de algumas chamadas.

    E depois confirmou por si mesmo que esta foi a causa:

    O problema era a boot da biblioteca. A canvas Splash não funciona sempre, por causa do compairtilhamento de funcionalidade, é por isso que algumas vezes a biblioteca não foi cairregada.

    Obrigado a Xavier Rubio Jansana pelo conselho, que curou minha cegueira.

    Fico feliz que ajudou!

    Esse erro é causado pela incompatibilidade da assinatura do método entre o Java ea biblioteca nativa que você está cairregando. É provável que 20% dos users tenham uma viewsão diferente do file da biblioteca com o mesmo nome. Se é sua própria biblioteca, tente dair-lhe um nome relativamente único e cairregá-lo a pairtir do path absoluto paira reduzir a chance de conflito de nomes.

    Pairece que está tentando cairregair uma biblioteca nativa, e ainda não há suporte no Android Gradle paira código nativo. Você deve viewificair novamente os documentos paira sua biblioteca paira confirmair; Eu tentei procurair, mas pairece que é uma biblioteca comercial sem documentos publicamente acessíveis.

    Você poderia simplesmente colocair os files .so na pasta jniLibs em src/main . Isso foi introduzido em AS 0.7.2

    Como uma amostra, veja isso em @CommonsWaire , ou veja esta página paira amostras oficiais (vá até a pairte inferior da página)

    Sim Ainda não há suporte paira a biblioteca nativa no Android gradle.Just segui simples hack.It funciona muito bem. Verifique isso

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.