- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码 fragment :
public static String getAppVersion(Context context) {
String versionName = null;
try {
versionName = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName; //This is the problematic line
} catch (NameNotFoundException e) {
e.printStackTrace();
}
return versionName;
}
现在根据 Crashlytics,有一个应用程序崩溃并给出以下异常的情况:
Caused by android.os.DeadObjectException
com.tawkon.data.lib.util.ParameterUtils.getAppVersion
android.os.BinderProxy.transactNative (Binder.java)
android.os.BinderProxy.transact (Binder.java:503)
android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo (IPackageManager.java:2684)
android.app.ApplicationPackageManager.getPackageInfo (ApplicationPackageManager.java:193)
com.tawkon.data.lib.util.ParameterUtils.getAppVersion (ParameterUtils.java:44)
com.tawkon.data.lib.helper.analytics.NetworkRequestHelper.generateHttpRequest (NetworkRequestHelper.java:28)
com.tawkon.data.lib.service.DataThroughputScanJobIntentService$2.onTestFinished (DataThroughputScanJobIntentService.java:342)
com.tawkon.data.lib.collector.DataThroughputManager$1.run (DataThroughputManager.java:171)
设备规范为三星操作系统 6。
在我的案例中,这似乎是一次罕见的崩溃。无论如何,是什么导致了这种情况的发生?我怎样才能防止它再次发生?
最佳答案
获取您自己的 versionName 的更好方法(我假设您正在尝试这样做,判断您的代码)是调用 BuildConfig.VERSION_NAME
。这要求应用程序是使用 gradle 构建的,并且版本在您的 app.gradle 文件中定义。
对于 PackageManager 问题本身,我有一个理论,虽然只是轶事(从我对这个问题的评论中复制):
I ran into the same problem a while back. It seems when the IPC Communication from the PackageManager tries to send too much data it somehow dies. It will stay dead until your app restarts. The only "solution" I found is to limit the data provided from getPackageInfo with it's flags.
关于android - GetPackageInfo 导致 DeadObjectException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55263437/
我有一个 Activity ,其中使用 startService() 启动服务,并在 onStart() 方法中绑定(bind)到同一服务。我使用 Messenger 发送一些文本来提供服务,然后将服
我的代码中出现了 DeadObjectException。下面,我描述了我的设置,以及我尝试解决问题的方法。 Service S 从Application A 启动。 Activity B(来自另一个
我们只在一种设备类型上使用我们的应用程序,并且经常在该设备上遇到此错误。 PackageManager 的唯一实例是 BootupReceiver: public class RestartHelpe
暂停期间抛出异常 android.os.DeadObjectException 在 android.os.BinderProxy.transactNative( native 方法) 在 androi
我有以下代码 fragment : public static String getAppVersion(Context context) { String versionName
我使用了媒体投影 API 来捕获屏幕。 我在停止媒体投影时收到以下警告。 10-07 10:32:57.394 537-537/? W/MediaProjectionManagerServi
一旦我想显示一个小部件并开始收听,我就会遇到以下异常: // the relevant stack trace, the rest is comming from my code // before
这是我的 logcat 详细信息。请帮我解决这个问题: 03-28 11:58:13.421 992-5910/? D/ActivityManager﹕ New dropbox entry:
我有一个简单的 NotificationListenerService 实现来测试新的 4.3 API。该服务本身曾经工作过。之后,我添加了在添加特定包的通知时发送广播。现在,只要我启动该服务,它就会
我已经成功完成了一个 Android 项目的实现,并开始测试应用程序是否存在内存泄漏。 有时,在应用程序中进行长途旅行后,我会得到 DeadObjectException,并且所有内存分配都被释放。
我已经安装了以前版本的应用程序。当我在 Play 商店提交新版本的应用程序时。在我的手机上,我已经更新了那个新版本,但是当我要使用某些功能时,它给了我以下异常 Failed to dispatch w
我有一个非常简单的函数,如下所示: public static boolean isAppInstalled(String packageName) { PackageManager pm =
DeadObjectException 和 NullPointerException 有什么区别?我想我可能理解,但我只是想确认一下。 我的理解 A DeadObjectException当您尝试引用
我正在使用 Context.sendOrderedBroadcast发送广播并在到达 resultReceiver 之前检查是否有人收到它的方法。 这是一个代码 fragment : context.
我们正在开发 NFC 标签 android 应用程序,它有 50% 的时间正常工作,其余时间我们在下面的 try block 中遇到 NFC 服务死机异常: 场景是我们第一次连接到 nfc 标签并发送
在 Android 上,我们有一个包装来自 GMS(谷歌移动服务)的 LocationClient 对象的类。 (注意 LocationClient 实现了 com.google.android.gm
我刚刚将我的项目升级到 API 23,但之前一直有效的代码出现错误。当我在下面的 Spinner 监听器中调用 dialog.dismiss() 时发生崩溃。如果我不在此区域调用 dismiss,它不
我有一个从服务中获取数据值(坐标)的应用程序,它工作正常,但在大约七八分钟后崩溃。 在 logcat 中出现了很多这样的信息: 02-24 09:50:35.761: E/RemoteExceptio
我在不同的设备上测试我的游戏,当用户改变音量(上/下)或按下菜单按钮或类似按钮时,其中一个(Asus Garmin A10)随机崩溃(3/5 次)。这可能是 native 崩溃,因为我没有收到 ACR
我在下面的日志中经常崩溃。它没有引用我的应用程序代码,但我猜它可能与 GoogleApiClient 连接/断开连接有关。有人得到类似的东西吗?我在这里找不到任何东西。 java.lang.Illeg
我是一名优秀的程序员,十分优秀!