鉴于:使用Android Studio向导创建的简单活动,内部没有任何自定义代码,消耗永久内存调用dumpGfxInfo()。
Android Studio在Allocation Tracker中的构建显示至少三个线程做同样的事情:
--- 8< ------------------------------------------------------------------
* < Thread 12 >
* execTransact():446, Binder (andoroid.os)
* onTransact():545, ApplicationThreadNative (android.app)
* dumpGfxInfo():1107, ActivityThread$ApplicationThread (android.app)
--- 8< -------------------------------------------------------------------
显然dumpGfxInfo()通过为空字符串分配内存来消耗内存。编译的唯一相关依赖项是 com.android.support:appcompat-v7:22.2.1
随着这种内存消耗,出现以下异常(有时):
15331-15364/ W/Binder﹕ Caught a RuntimeException from the binder stub implementation.
java.lang.NullPointerException: Attempt to read from field 'android.view.HardwareRenderer android.view.View$AttachInfo.mHardwareRenderer' on a null object reference
at android.view.WindowManagerGlobal.dumpGfxInfo(WindowManagerGlobal.java:466)
at android.app.ActivityThread$ApplicationThread.dumpGfxInfo(ActivityThread.java:1107)
at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:548)
at android.os.Binder.execTransact(Binder.java:446)
问题:如何修复/关闭此行为并摆脱它?
答案 0 :(得分:28)
有关进一步参考以及来自此处的任何人:您必须禁用GPU分析,因为默认情况下它未被禁用(Android Studio 2.1预览版4)。 您可以在&#39; Monitors&#39;中找到按钮。部分(见下图)
答案 1 :(得分:20)
似乎是最新的Android Studio错误。 旧版本没有此问题。 见this link
答案 2 :(得分:1)
所描述的行为已在最新的SDK更新1.4 Beta(Build AI-141.2202261)中修复。