无法在AndroidManifest.xml中设置debuggable标志

17

我尝试完成这个教程来学习调试NDK应用程序,但是当我在AndroidManifest.xml文件中设置android:debuggable="true"时,会出现以下错误:

避免硬编码调试模式;将其留空允许调试和发布版本自动分配一个

如何解决这个问题,以便能够调试Teapot应用程序?


你是在使用Android Studio还是Eclipse+ADT? - Martin Konecny
@MartinKonecny Eclipse+ADT+NDK+ANT。我不知道基于Intelij的Android Studio,那应该是一个更好的环境。我能否只使用Android Studio而不是Eclipse?它们是否可以互换或者使用完全不同的工具和概念? - Narek
损坏的YouTube链接... - not2qubit
1个回答

33

请参阅SDK工具,版本8(2010年12月)的官方文档。

支持真正的调试构建。开发人员不再需要在清单文件的<application>标签中添加android:debuggable属性,构建工具会自动添加该属性。在Eclipse/ADT中,所有增量构建都被认为是调试构建,因此工具会插入android:debuggable="true"。在导出已签名的发布构建时,工具不会添加该属性。在Ant中,ant debug命令会自动插入android:debuggable="true"属性,而ant release则不会。如果手动设置了android:debuggable="true",则ant release实际上会执行调试构建,而不是发布构建。

更新

如果您真的想在Eclipse中禁用对debuggable标志的检查,应执行以下操作:

请执行以下步骤:
  1. 进入项目首选项
  2. 选择Android Lint Preferences
  3. Security部分中找到HardcodedDebugMode Id并选择它
  4. Severity的值更改为Warning,例如。
  5. 应用确定

详细信息请参阅屏幕截图: enter image description here


视频中说我只需要执行 ndk-build NDK_DEBUG=1 APP_OPTIM=debug 就相当于设置了 android:debuggable="true",但请参考我的另一个问题:http://stackoverflow.com/questions/23985558/error-package-cookbook-chapter3-is-not-debuggable-ndk-gdb - Narek
1
这就是答案。debuggable=true会在每次构建时自动设置,直到你进行发布构建。 - Martin Konecny
在你提出问题后,我尝试找到如何禁用此检查的方法。但是我还没有找到任何信息。 - Igor Tyulkanov
在Android Studio中完成相应操作后,编辑器中的错误消失了,但是在尝试编译时仍会出现错误,无法构建应用程序。 - msbg
@Narek 我也遇到了同样的错误:gdbserver output: run-as: exec failed for lib/gdbserver Error:No such file or directory Verify if the application was built with NDK_DEBUG=1 你是怎么解决的? - user13107
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接