【发布时间】: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构建(所以不CMake或ndkBuild)。您能详细说明一下您的构建系统吗? -
我实际上使用的是普通的 Android Studio Gradle 构建。更具体地说,我使用
ndkBuild。我编写了一个自定义的Android.mk和Application.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