12-15 09:28:12.371: W/System.err(5412): android.os.DeadObjectException
12-15 09:28:12.372: W/System.err(5412): at android.os.BinderProxy.transactNative(Native Method)
12-15 09:28:12.372: W/System.err(5412): at android.os.BinderProxy.transact(Binder.java:496)
以上错误,查找问题原因,网友大部都说是远程remote进程崩溃导致此问题出现。
解决办法:
在调用者的程序清单AndroidManifest.xml文件中application下添加
android:hardwareAccelerated="false"就可以解决了。
<application android:hardwareAccelerated="true" ...>
从Android3.0 (API level11)开始,Android的2D显示管道被被设计得更加支持硬加速了.硬加速使用GPU承担了所有在View的canvas上执行的绘制操作.
启用硬加速最简单的的方法是对整个应用启用硬件速.如果你的应用只使用标准的view和Drawable,全局启用硬加速将不会带来任何负面影响.然而,因为硬加速不是被所有的2D绘制所支持,所以启用它时可能对你的自定义绘制产生影响.出现的问题经常是不可见的,也可能是异常,或错误地显示了像素.为了避免这些问题,Android提供了在以下各级别上启用或禁止硬加速的能力:
Application Activity Window View
如果你的应用使用了自定义绘制,需要在真实的设备上启用硬加速进行测试来找出问题."不支持的绘制操作"一节描述了已知的不能被硬加速的绘制操作以及如何避开它们.
控制硬加速
你可以在以下级别上分别控制硬加速:
Application Activity Window View
Application级
在你的manifest文件中,把以下属性添加到<application>标签来对你的整个应用启用硬加速:
<applicationandroid:hardwareAccelerated="true" ...>
Activity级
如果你的应用在全局启用硬加速时行为不正确,你可以对个别activities单独启用硬加速.欲在actvity级别启用或禁止硬加速,你可以对<activity>元素使用android:hardwareAccelerated属性.下面的例子在整个应用中启用了硬加速但对一个activity禁止了硬加速:
<applicationandroid:hardwareAccelerated="true">
<activity... />
<activityandroid:hardwareAccelerated="false" />
</application>
Window级
如果你需要更高颗粒度的控制,你可以使用以下代码为一个window启用硬加速:
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
注:现在你还不能在window级别禁止硬加速.
Viewlevel
你可以在运行时使用以下代码禁止个别的View的硬加速:
myView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
注:当前你不能在View级别启用硬加速.View层有除禁止硬加速之外的其它功能.
判定一个View是否能被硬加速
有时一个应用了解是否启用了硬件速是很有用的,对那些自定义View之类的东西尤其重要.在你的应用做了一些不被最新的管线所支持的自定义绘制时这更加重要.
有两种方法可以检查应用是否被硬加速:
View.isHardwareAccelerated():如果View附加到一个硬加速的window上就返回true.
Canvas.isHardwareAccelerated():如果Canvas被硬加速了就返回true.
如果你必须在你的绘制代码中做这个,应使用Canvas.isHardwareAccelerated()而不是View.isHardwareAccelerated().当一个view附加到一个硬加速的window上,它仍可以使用非硬件速的Canvas进行绘制操作.比如当为了高速缓存而把一个view画到一个bitmap中.
每次做项目都会遇见一些特别简单的问题,但是又很费时间来让你解决的问题。
1.本身想实现一个简单的画廊效果,可是每次图片的显示都不能显示在正中的位置,真的很烦人,也花费了很长时间。最终还是知道了原因。解决这个问题的方法有很多种,但是就这一种比较简单(虽然网上说的会占用内存,不过要是设置android:hardwareAccelerated=”false”应该就不会吧,我也不清楚。哈哈)
办法:android:hardwareAccelerated=”false”
2.CarView 阴影效果的显示,如果不开启硬件加速,有的手机就不会显示阴影效果,并不是说只有android5.0以上的系统才会这样,其它的手机也会有这种现象。
办法:android:hardwareAccelerated=”true”
最后总结:如果你的项目中,出现了上面两种情况(当然可能不是同一个问题),如果android:hardwareAccelerated=”false”真的是不占用内存的话,可以把它设置在application中,或者你也可以设置在需要用到的activity中,android:hardwareAccelerated=”true”的话,就配置在用到的activity中就可以了。
近期使用到AIDL跨进程通信,出现:12-15 09:28:12.371: W/System.err(5412): android.os.DeadObjectException12-15 09:28:12.372: W/System.err(5412): at android.os.BinderProxy.transactNative(Native Method)12-15 09:28:
开发的过程中有时候会遇到De
adO
bject
Exception
,说明系统service已经停止运行,解决的方式是在mainfistxml的application标签中添加
android
:hardwareAccelerated="false",禁用硬件加速。
转载于:https://www.cnblogs.com/henkun010/p/6566015.html...
大家都知道,现在安装
Android
系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了崩溃现象,开发者应该及时获取在该设备上导致崩溃的信息,这对于下一个版本的bug修复帮助极大,所以今天就来介绍一下如何在程序崩溃的情况下收集相关的设备参数信息和具体的异常信息,并发送这些信息到服务器供开发者分析和调试程序。
我们先建立一个crash项目,项目结构如图:
在MainActivity.java代码中,代码是这样写的:
package com.scott.crash;
import
一、异常
原因
在使用aidl进行进程间通信时,有时候在客户端调用服务端的接口会抛出De
adO
bject
Exception
异常,
原因
一般是由于某种
原因
服务端程序崩溃重启或者服务对象由于内存紧张被回收导致的,最近开发的时候遇到过此问题,解决方案有两种,实测有效。
二、解决方案如下两种方案
1. 方案一:针对应用开发,可以在服务端进程启动的时候发个消息给客户端,客户端收到消息的时候重新进行绑定操作,目的...
今天出现了
android
.
os
.De
adO
bject
Exception
异常。那么De
adO
bject
Exception
什么意思呢,字面意思当前对象“死”了,也就是没有了呗!那好首先来看看完全的log日志:
01-12 14:55:45.934 1240-1296/? W/WindowAnimator: Failed to dispatch window animation state change.
Android
app集成bugly之后就收到了
android
.
os
.De
adO
bject
Exception
,解决方式是在manifest中设置application的硬件加速为false:
android
:hardwareAccelerated="false"
异常
原因
:de
adO
bject
Exception
异常,说明应用的service已经停止;要么是从操作系统中丧生,要么从应用程序中
碰到一个异常,具有随机性:
android
.
os
.De
adO
bject
Exception
: Transaction failed on small parcel; remote process probably died
at
android
.
os
.BinderProxy.transactNative(Native Method)
at
android
.o...
出现异常如下:
System.err:
android
.
os
.De
adO
bject
Exception
: Transaction failed on small parcel; remote process probably died
10-30 09:51:08.151 3664 3682 W System.err: at
android
.
os
.BinderProxy.transac...