小编Enr*_*ini的帖子

ndk-stack:无法打开符号文件.../../libutil.so.错误(9):错误的文件描述符

我正在尝试使用ndk-stack实用程序在使用本机库的应用程序调试期间获得一些帮助.问题是我使用该实用程序的所有内容是:

*** 崩溃转储: *** 构建指纹:'tmobile/htc_vision/vision:2.3.4/GRJ22/82286:user/release-keys'pid:15769,tid:15794 >>> us.ihmc.aci.dsproapp <<< signal 11( SIGSEGV),代码1(SEGV_MAPERR),故障地址00000024堆栈帧#00 pc 00063710 /data/data/us.ihmc.aci.dsproapp/lib/ libutil.so:无法打开符号文件/ home/enrico/CVSROOT/android/aci/dsproapp/obj/local/armeabi/libutil.so.错误(9):错误的文件描述符

我正在使用的命令是这样的:

ndk-stack -sym ../obj/local/armeabi -dump /home/enrico/stacktrace/crash_waypoint.txt

我的所有本机库都是用它编译的

APP_OPTIM:=调试APP_STL:= gnustl_static

在Application.mk中,应该存在调试符号.你们之前有没有人遇到过这个问题?谢谢,恩里科

android android-ndk

6
推荐指数
1
解决办法
4166
查看次数

如何检查服务是否在Android 8(API 26)上运行?

升级到Android 8后,我的应用程序的某些功能已经破坏,甚至没有明确定位到API 26.特别是,用于检查服务是否正在运行的良好旧函数(如此处的StackOverflow中所述:如何检查服务是否在Android上运行?)不再起作用.

为了刷新我们的集体记忆,这是一个经典的方法:

private boolean isMyServiceRunning(Class<?> serviceClass) {
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (serviceClass.getName().equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

现在的问题getRunningServices是现在已经弃用,并且不再返回正在运行的服务.有没有人在Android 8上遇到过这个问题?有没有官方解决方案(或黑客)?我还应该指出,我想要查找的服务与调用的代码不在同一个进程/应用程序中isMyServiceRunning()(由于向后兼容性原因,仍提供该功能)

java android android-8.0-oreo

6
推荐指数
1
解决办法
3674
查看次数

标签 统计

android ×2

android-8.0-oreo ×1

android-ndk ×1

java ×1