ViewRootImpl.setMultiWindowScale中的Samsung Note 3版本4.4.4空指针

时间:2014-09-30 18:20:35

标签: android android-sdk-tools samsung-mobile-sdk

我收到了来自Samsung Note 3和Android 4.4.4的用户的报告。它在这里转储:

SM-N900P 4.4.4 19

java.lang.NullPointerException
    at android.view.ViewRootImpl.setMultiWindowScale(ViewRootImpl.java:7992)
    at android.view.WindowManagerGlobal.setMultiWindowScale(WindowManagerGlobal.java:538)
    at com.android.internal.policy.impl.MultiPhoneWindow.adjustScaleFactor(MultiPhoneWindow.java:1602)
    at com.android.internal.policy.impl.MultiPhoneWindow.access$2300(MultiPhoneWindow.java:107)
    at com.android.internal.policy.impl.MultiPhoneWindow$MultiPhoneDecorView.onAttachedToWindow(MultiPhoneWindow.java:1120)
    at android.view.View.dispatchAttachedToWindow(View.java:13637)
    at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2703)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1533)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1270)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6686)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:813)
    at android.view.Choreographer.doCallbacks(Choreographer.java:613)
    at android.view.Choreographer.doFrame(Choreographer.java:583)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:799)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:146)
    at android.app.ActivityThread.main(ActivityThread.java:5727)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
    at dalvik.system.NativeStart.main(Native Method)

这不在我的代码中,我无法在模拟器中重现它,因为我无法使用4.4.4创建AVD。 使用AVD 4.4.2它可以工作。我已经在4.4.2版本的商店/商店尝试过手机,它可以正常使用。但是,我无法获得4.4.4版本。

  1. 如何使用4.4.4创建和AVD?
  2. 为什么Google没有提供4.4.4 AVD?
  3. 任何人都知道如何解决转储?
  4. 我甚至找不到AOSP中的7992行和方法setMultiWindowScale?
  5. 谢谢!

1 个答案:

答案 0 :(得分:2)

  

如何使用4.4.4创建和AVD?

Genymotion将让您模拟在4.4.4上运行的三星Note 3.

它有Eclipse和Android Studio的插件支持,请按照here说明进行安装。

enter image description here

  

为什么Google没有提供4.4.4 AVD?

我不知道为什么不是AVD,但他们正在为4.4.4 here提供二进制文件如果您有权访问Nexus设备,您可能需要仔细检查/确认问题与三星有关仅

  

任何人都知道如何解决转储?

上面发布的堆栈跟踪看起来在您的应用程序附加到多窗口并且视图被缩放之后抛出​​了异常,或者至少如果没有抛出NPE则会缩放它。使用此step by step guide检查清单设置以获得多窗口支持,检查最大和最小窗口大小。如果模拟器不起作用并且您无法重现异常,作为最后的手段以某种方式触及该用户并进行通信以重现问题/测试您的解决方案并迭代直到其修复。祝你好运!

  

我甚至找不到7992行和方法setMultiWindowScale   AOSP?

由于这看起来与三星特定的android.view.ViewRootImpl类实现非常相关,以支持多窗口和其他三星的东西,我怀疑你可以找到实际的源代码,除非三星已经在某处发布它。