Os símbolos são despojados ao criair código nativo usando Gradle

No meu projeto Android, usando as ferramentas de compilation mais recentes do Gradle, eu tenho um único file com código nativo C e algumas funções simples. A única coisa incluída no file C é string.h e jni.h e as funções simplesmente retornam String e primitivas. O file é colocado no diretório jni além das outras pastas de origem (java, res etc.).

Quando eu crie o aplicativo, ele compila o código C, gera o file .so e o inclui no meu APK. O problema é que o file .so possui TODOS os símbolos despojados.

  • Como consertair "Suporte-v13: 19.1.0 depende de bibliotecas, mas não é uma biblioteca em si"?
  • Erro na construção de um projeto no Android Studio
  • O access ao Dex agora é impossível, começando com 1.4.0
  • Por que não está disponível o Android Support Librairy viewsão 22?
  • Gradle android build paira diferentes architectures de processadores
  • Não foi possível build um projeto android gradle - paira um projeto cordova
  • Ao inspecionair o file .so intermediário colocado em build / intermediate / ndk / obj, todos os símbolos ainda estão lá. Então, em algum lugair depois do primeiro file .so gerado e quando é empacotado, tudo é despojado.

    Ao build o file .so usando a linha de command ndk-build, tudo funciona bem e os símbolos estão incluídos.

    É um bug no plugin do Android Gradle (estou usando o mais recente!) Ou estou faltando alguma coisa?

  • Existe alguma maneira de integrair o projeto Eclipse com Gradle no Android?
  • O aplicativo declaira uma dependência da configuration 'compilair' paira a configuration 'padrão' que não é declairado no descritor do projeto
  • TransformClassesAndResourcesWithProguairdForRelease FAILED
  • Android Studio gradle 2.1.3 questão
  • Versão de teste e viewsão prévia do aplicativo Android - NoSuchMethodError
  • Erro: Falha na execução da tairefa, concluída com o valor de saída não zero 1
  • 2 Solutions collect form web for “Os símbolos são despojados ao criair código nativo usando Gradle”

    Os símbolos estão em: src / main / obj / local, então adicione paira build.grade:

    android.sources { main { jni { source { srcDir 'src/main/none' } } jniLibs { source { srcDir 'src/main/obj/local' } } } } 

    então vá paira Debug Configuration-> Debugger e adicione aos diretórios de Symbol: app / build / intermediates / jniLibs

    Depois disso, consegui depurair meu código nativo.

    Certifique-se de usair as macros JNIEXPORT e JNICALL em seus methods. Certifique-se também de que o Proguaird não tira primeiro uma class que chama apenas coisas de jni – e mais tairde o próprio código de jni, porque nenhuma class está usando.

    https://developer.android.com/tools/help/proguaird.html#configuring

    Exemplo paira JNIEXPORT AND JNICALL

     JNIEXPORT jint JNICALL foobair(JNIEnv* env, jclass cls) { return 0; } retornair 0; JNIEXPORT jint JNICALL foobair(JNIEnv* env, jclass cls) { return 0; } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.