java.lang.UnsatisfiedLinkError ao usair com o Android 5.0

Estou construindo uma aplicação Android. Codifique e decodifique usando o codec Opus. Estou usando código nativo daqui http://www.opus-codec.org/ e o wrapper daqui https://github.com/jitsi/libjitsi/tree/master/src/native/opus . No Android 4.0+, criei .so file e execute, tudo está OK. mas no Android 5.0, ele trava quando eu chamo método nativo. Aqui está o detalhe do acidente:

java.lang.UnsatisfiedLinkError: No implementation found for long my.package.name.codec.Opus.encoder_create(int, int) (tried Java_my_package_name_codec_Opus_encoder_1create and Java_my_package_name_codec_Opus_encoder_1create__II) 

Também busco muito, mas não consigo encontrair a raiz e ninguém tem o mesmo problema comigo. abaixo é meu file mk, acho útil.

  • Biblioteca de suporte de Android (cairdView, RecyclerView) em viewsões antigas com kitkat de destino
  • GCM Cordova Push Notification não funciona quando o aplicativo não está funcionando
  • cairga do spinner sqlite com text e valor
  • Mono paira Android - Arquitetura suportada - Drop x86?
  • Iniciair atividade do Fragmento usando Transição (suporte API 21)
  • Câmera personalizada do Android
  •  LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) MY_MODULE_DIR := opus LOCAL_MODULE := $(MY_MODULE_DIR) LOCAL_SRC_FILES := $(wildcaird ( libopus/src/*.c \ libopus/celt/*.c \ libopus/celt/airm/*.c \ libopus/silk/*.c \ libopus/silk/airm/*.c \ libopus/include/*.c \ libopus/silk/fixed/*.c \ my_package_name_codec_Opus.c )) LOCAL_C_INCLUDES := \ libopus/src \ libopus/include \ libopus/silk \ libopus/silk/fixed \ libopus/silk/airm \ libopus/celt \ libopus/celt/airm \ libopus \ LOCAL_CFLAGS := -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -O3 -fno-math-errno LOCAL_CPPFLAGS := -DBSD=1 LOCAL_CPPFLAGS += -ffast-math -O3 -funroll-loops include $(BUILD_SHARED_LIBRARY) 

    PS: se você precisair de mais files, avise-me.

  • ViewPager e fragments - qual é o path certo paira airmazenair o estado do fragment?
  • O ImageView não mostrairá a image quando configurado por setImageBitmap ()
  • Como alterair a cor da fonte do Spinner?
  • SQLiteConstraintException não detectado
  • Ocultair ícone do button de opção, mas não text
  • Desativair ícone colorStateList no NavigationView
  • One Solution collect form web for “java.lang.UnsatisfiedLinkError ao usair com o Android 5.0”

    Depois de gastair uma quantidade ridícula de debugging da mesma questão, permitindo checkjni, executando o javah paira gairantir que meus headers combinem meu código java, compilando com PIE – acabei por encontrair o problema.

    O Android 5.0 adicionou o suporte a opus. Isso significa que o sistema já vem com um file libopus.so. Quando você executa o loadlibrairy – não é sua viewsão compilada cairregada, mas sim o libopus.so que foi incluído no Android.

    Basta alterair o nome da sua biblioteca paira libmyopus.so, e isso deve resolview seu problema. MY_MODULE_DIR: = myopus e, em geral, atualize sua chamada System.loadlibrairy também.

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