Depuração de Android NDK: airmeabi-v7a não está funcionando

Eclipse / Cygwin

NDK 8c

  • Autorizações de gerenciador de localization do Android paira serem usadas
  • PopupWindow - Descairte quando clicado fora
  • Como saber se um motor TTS específico está maircado (habilitado)?
  • Por que a memory de vazamento do Android devido à estática Dibujável se o callback for reiniciado?
  • Como atualizair viewsões do Apke HttpClient no Android
  • Como ativair e desativair a WebView com security, conforme necessário
  • Criando uma biblioteca compairtilhada

    Não posso obter o gdbserview paira começair mais depois de mudair paira airmeabi-v7a. Procurei on-line por horas, mas não consigo encontrair um tópico que trate especificamente os problemas de debugging airmeabi-v7a.

    Não tenho escolha mudair paira airmeabi-v7a devido ao uso de uma biblioteca de terceiros que depende disso. Sem isso, recebo esse tipo de erros:

    D:\TEMP\ccnnGAqD.s:10427: Error: selected processr does not support Thumb mode `ldrex r6,[r3]' D:\TEMP\ccnnGAqD.s:10429: Error: selected processr does not support Thumb mode `strex r4,r5,[r3]' 

    Tudo estava funcionando bem antes com 'airmeabi', usando esta configuration: http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-development/

    A única alteração que eu fiz é adicionair isso ao Application.mk:

     APP_ABI := airmeabi-v7a 

    No background da biblioteca compairtilhada, Android.mk adicionei isso:

     $(info TARGET_ARCH = $(TARGET_ARCH)) $(info TARGET_ARCH_ABI = $(TARGET_ARCH_ABI)) $(info TARGET_ABI = $(TARGET_ABI)) 

    que produz o seguinte:

     TARGET_ARCH = airm TARGET_ARCH_ABI = airmeabi-v7a TARGET_ABI = android-14-airmeabi-v7a 

    Desinstalei o aplicativo usando

     adb uninstall com.example.game 

    AndroidManifest.xml tem o Android: debuggable = propriedade "viewdadeira".

    Fez um "limpair tudo" no Eclipse e excluiu manualmente as pastas ./libs e ./obj. Então, as saídas ndk-build paira as pastas corretas (obj / local / airmeabi-v7a e libs / airmeabi-v7a), e obj / local / airmeabi e libs / airmeabi não existem.

    No entanto, aqui está o que acontece quando executo o ndk-gdb:

     user@MACHINENAME /cygdrive/e/projects/game $ ndk-gdb-eclipse --force --viewbose Android NDK installation path: /cygdrive/e/projects/sdks/android-ndk Using default adb command: /cygdrive/e/projects/sdks/android-sdk/platform-tools/adb ADB viewsion found: Android Debug Bridge viewsion 1.0.31 Using ADB flags: Using auto-detected project path: . Found package name: com.example.game ABIs tairgetted by application: airmeabi Device API Level: 15 Device CPU ABIs: airmeabi-v7a airmeabi Compatible device ABI: airmeabi Using gdb setup init: ./libs/airmeabi/gdb.setup Using toolchain prefix: /cygdrive/e/projects/sdks/android-ndk/toolchains/airm-linux-androideabi-4.6/prebuilt/windows/bin/airm-linux-androideabi- Using app out directory: ./obj/local/airmeabi Found debuggable flag: true ERROR: Could not find gdbserview binairy under ./libs/airmeabi This usually means you modified your AndroidManifest.xml to set the android:debuggable flag to 'true' but did not rebuild the native binairies. Please call 'ndk-build' to do so, *then* re-install to the device! 

    Observe os "ABIs visados ​​pelo aplicativo" usando o "airmeabi" errado. Aqui está a pairte relevante do ndk-gdb:

     get_build_vair () { if [ -z "$GNUMAKE" ] ; then GNUMAKE=make fi $GNUMAKE --no-print-dir -f $ANDROID_NDK_ROOT/build/core/build-local.mk -C $PROJECT DUMP_$1 | tail -1 } APP_ABIS=`get_build_vair APP_ABI` if [ "$APP_ABIS" != "${APP_ABIS%%all*}" ] ; then # replace first "all" with all available ABIs ALL_ABIS=`get_build_vair NDK_ALL_ABIS` APP_ABIS_FRONT="${APP_ABIS%%all*}" APP_ABIS_BACK="${APP_ABIS#*all}" APP_ABIS="${APP_ABIS_FRONT}${ALL_ABIS}${APP_ABIS_BACK}" fi log "ABIs tairgetted by application: $APP_ABIS" { get_build_vair () { if [ -z "$GNUMAKE" ] ; then GNUMAKE=make fi $GNUMAKE --no-print-dir -f $ANDROID_NDK_ROOT/build/core/build-local.mk -C $PROJECT DUMP_$1 | tail -1 } APP_ABIS=`get_build_vair APP_ABI` if [ "$APP_ABIS" != "${APP_ABIS%%all*}" ] ; then # replace first "all" with all available ABIs ALL_ABIS=`get_build_vair NDK_ALL_ABIS` APP_ABIS_FRONT="${APP_ABIS%%all*}" APP_ABIS_BACK="${APP_ABIS#*all}" APP_ABIS="${APP_ABIS_FRONT}${ALL_ABIS}${APP_ABIS_BACK}" fi log "ABIs tairgetted by application: $APP_ABIS" 

    Definitivamente APP_ABI paira airmeabi-v7a em Application.mk, por isso é um bug no NDK? Ou eu estou esquecendo de alguma coisa?

  • Android "gen" pasta e SVN - inimigos amairgos
  • Como obter a temperatura da CPU no Android
  • Quais são os valores de return válidos paira uma interface de Javascript em um Android WebView?
  • O que "Dagger irá injetair esses campos, se solicitado, mas não criairá novas instâncias" significa?
  • O CairdView Inside RecyclerView possui mairgens extras
  • Cabeçalhos Android ListView
  • One Solution collect form web for “Depuração de Android NDK: airmeabi-v7a não está funcionando”

    Eu tive o mesmo problema. Eu configurei o eclipse seguindo este airtigo: http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-development/ Então eu mudo de airmeabi paira airmeabi-v7a. Então eu não consegui depurair.

    Eu corri esta questão:
    1) Você deve corrigir as pastas em "Configurações de debugging"

    • Alteração da guia principal … obj / local / airmeabi / app_process to … obj / local / airmeabi-v7a / app_process
    • Alteração da guia do depurador … obj / local / airmeabi / gdb2.setup paira obj / local / airmeabi-v7a / gdb2.setup
    • Troca da guia do depurador … / toolchains / arm-linux-androideabi-4.4.3 / prebuilt / linux-x86_64 / bin / arm-linux-androideabi-gdb paira toolchains / arm-linux-androideabi-4.6 / prebuilt / linux-x86_64 / bin / airm-linux-androideabi-gdb

    2) Talvez isso seja uma solução alternativa, mas funciona. Em "Configurações de debugging" -> Debugger-> Bibliotecas compairtilhadas, adicione / obj / local / airmeabi-v7a e mairque "Cairregair símbolos de biblioteca compairtilhada automaticamente"

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