【问题标题】:problems with android ndk-gdbandroid ndk-gdb 的问题
【发布时间】:2011-12-05 15:29:45
【问题描述】:

我有两个 android 项目:一个实现 SDK 的库项目和一个测试应用程序,它是一个常规的 android 应用程序(并使用 sdk jar)。 SDK 项目包含我使用 JNI 调用的本机代码。 我正在尝试在 Eclipse 中启用调试我的 JNI 本机代码。我安装了ndk r7。我遵循了本教程: http://www.eclipse.org/sequoyah/documentation/native_debug.php

我在尝试运行 ndk-gdb 时卡住了。这是我运行它时得到的:

$ ndk-gdb --adb=/cygdrive/C/android-sdk/platform-tools/adb.exe --verbose  
/cygdrive/c/android-ndk-r7/build/core/ndk-common.sh: eval: line 538: syntax error near unexpected token `('  
/cygdrive/c/android-ndk-r7/build/core/ndk-common.sh: eval: line 538: `ADB_CMD=/cygdrive/c/Program Files (x86)/Android/android-sdk/platform-tools/adb'  
/cygdrive/c/android-ndk-r7/build/core/ndk-common.sh: line 538: warning: syntax errors in . or eval will cause future versions of the shell to abort as Posix requires  
Android NDK installation path: /cygdrive/c/android-ndk-r7  
Using specific adb command: /cygdrive/C/android-sdk/platform-tools/adb.exe  
ADB version found: Android Debug Bridge version 1.0.29  
Using final ADB command: '/cygdrive/C/android-sdk/platform-tools/adb.exe'  
Using auto-detected project path: .  
Found package name: com.nuance.vbserver  
ABIs targetted by application: armeabi armeabi-v7a  
Device API Level: 10  
Device CPU ABIs: armeabi-v7a armeabi  
Compatible device ABI: armeabi-v7a  
Found debuggable flag: true  
ERROR: Non-debuggable application installed on the target device.  
       Please re-install the debuggable version!  

【问题讨论】:

    标签: android eclipse android-ndk


    【解决方案1】:

    您的应用的一部分似乎是在没有调试符号的发布模式下构建的。尝试在调试模式下重建。如果没有您的 makefile,很难准确解释如何执行此操作,但this webpage 有一些关于如何设置它的逐步说明。

    【讨论】:

    • 我正在尝试通过 Eclipse 进行设置,以便可以在同一个环境中运行我的 java 代码和我的本机代码。我也在通过 Eclipse 中的 sequoya 插件进行构建。如果您将我指向您需要的 make 文件,我会将其粘贴到此处。
    • 顺便说一句,这发生在我删除了 NDK 附带的 awk 工具之后。它破坏了 eclpise 构建功能,所以我恢复了它。现在我得到了应用程序所针对的 ABI:Android NDK: Host 'awk' tool is outdated。请定义 HOST_AWK 指向 Gawk 或 Nawk !
    • 你是对的。我手动删除了所有目标文件并重新编译,它工作了。
    • ... 这是我从命令行编译的时候。当我从 eclipse 编译它时,问题又回来了。
    • 如果我使用完全没有调试符号但我自己的库的专有共享对象怎么办?有any 解决方法吗?我准备完全放弃原生 Android 开发。
    【解决方案2】:

    使用“ndk-build NDK_DEBUG=1”命令编译你的代码

    【讨论】:

    • 并确保 android:debuggable="true" 在您的 AndroidManifest.xml 中的应用程序标签中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    相关资源
    最近更新 更多