【问题标题】:Where are obj files for ndk-stack in androidTest packagesandroidTest 包中 ndk-stack 的 obj 文件在哪里
【发布时间】:2018-05-15 13:34:07
【问题描述】:

我正在为我正在开发的模块(打包在 aar 存档中,而不是 apk)库实施一些仪器测试。该模块部分用 Java 编写,部分用 C 编写。

可悲的是,在运行我的测试和执行本机代码时发生了崩溃;我想用ndk-stack 表示故障转储,以便查看真正的罪魁祸首并调查我的问题。

我知道这些文件应该在对象目录 obj/ 中,就在项目目录中,具体来说:

$PROJECT_PATH/obj/local/<ABI>

问题是它们根本不存在。他们在哪?如何让 androidTest 相关任务生成它们或向我显示它们在哪里?我错过了什么?

项目结构如下:

MyProject
 |_ :app (a single button application which integrates the library)
 |_ :myLibrary (the actual library I'm working on and testing)
    |_ java
    |  |_ my.package.name
    |  |_ my.package.name (androidTest) <- a test here crashes
    |  |_ my.package.name (test)
    |_ cpp
       |_ my native files

【问题讨论】:

  • 我认为你的不使用 Android Studio Gradle 构建(所以 CMakendkBuild)。您能详细说明一下您的构建系统吗?
  • 我实际上使用的是普通的 Android Studio Gradle 构建。更具体地说,我使用ndkBuild。我编写了一个自定义的Android.mkApplication.mk 文件来管理共享对象构建。为了执行测试,我使用标准 IDE 工具(例如,单个测试用例或测试类上的“播放按钮”)。
  • .obj 文件 (ndkBuild) 的典型路径是 ...\android-project\app\build\intermediates\ndkBuild\debug\obj\local\armeabi-v7a\objs-debug\SDL2\src 为什么您没有使用操作系统搜索 *.o 文件?
  • 这太奇怪了,我在整个项目目录中执行了 find(我正在运行 macOS),但没有找到带有 .o 扩展名的任何内容。现在我已经手动移动到您指定的目录中,它们就在那里!具体路径为:$PROJECT_PATH/myLibrary/build/intermediates/ndkBuild/debug/obj.
  • 酷,是的,这就是我所期望的地方,你还需要什么吗?

标签: android android-ndk android-testing object-files ndk-stack


【解决方案1】:

在 cmets 中的讨论之后,找到调试对象符号的正确路径似乎是:

$PROJECT_PATH/myLibrary/build/intermediates/ndkBuild/debug/obj

【讨论】:

    猜你喜欢
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 2015-08-10
    • 2011-05-19
    相关资源
    最近更新 更多