我有一个NDK应用程序,它由三部分组成(共享库):
Everything编译并成功运行,但即使我知道正在调用__android_log_print,我也看不到任何日志输出(我在行上放置一个断言以使其中止以确保)。
如果我直接从主模块调用__android_log_print,它可以工作。如果我从Java填充活动中调用日志记录语句,它也可以工作,但通过我的库调用什么都不会打印。
这会导致什么? Android中是否存在阻止从库代码中记录的内容?
编辑:看起来__android_log_print被某种方式重定向到stdout / stderr - 我不知道这可能是怎么回事?我使用SDL2是否相关
答案 0 :(得分:0)
哈!所以事实证明,由于一系列涉及符号链接的错误,一个旧的头文件以及我轻率地认为是我的断言的巧合崩溃,我甚至没有调用__android_log_print!
我的游戏引擎正在拾取一个旧的头文件,其中是日志代码的内联实现(之后已被移动到源文件中)。然后将其编译到游戏引擎库中,从而忽略了基础库中的正确实现。
如果我还没有开始在游戏引擎库中寻找未解决的符号,我就不会想到这一点,所以感谢那个fadden! :)