在开发集成了开源库的Android app时,有时想获得开源库运行的log。但开源库并没有将log输出到adb logcat中,那怎么办呢?只需简单的修改开源库的代码,并重新编译开源库就可以了。
1.生成standalone的toolchain
android-ndk-r8e/build/tools/make-standalone-toolchain.sh \ --platform=android-8 \ --toolchain=arm-linux-androideabi-4.7 \ --install-dir=/tmp/android-8-toolchain \ --system=linux-x86_64
export CC=/tmp/android-8-toolchain/bin/arm-linux-androideabi-gcc
export CXX=/tmp/android-8-toolchain/bin/arm-linux-androideabi-g++
export AR=/tmp/android-8-toolchain/bin/arm-linux-androideabi-ar
export RANLIB=/tmp/android-8-toolchain/bin/arm-linux-androideabi-ranlib
export PATH=/tmp/android-8-toolchain/bin:$PATH
3.设置LDFLAGS,否则会出现“undefined reference to '__android_log_print'”
export LDFLAGS='-L/tmp/android-8-toolchain/sysroot/usr/lib -llog'
4.在需要的地方输出log的源文件中
扫描二维码关注公众号,回复:
17540632 查看本文章

(1) #include <android/log.h>
(2) 调用__android_log_print函数
__android_log_print(ANDROID_LOG_DEBUG, "YourTag", "Write your debug log here");
__android_log_print(ANDROID_LOG_ERROR, "YourTag", "Write your error log here");
5.重新编译开源库,就可以在adb logcat中看到上面加入的log了