Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android OS 3.2上的WindowManagerImpl中的NullPointerException大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当我在“拉伸到填充屏幕”到“缩放到填充屏幕”之间切换时,我在Wizerd创建的一个简单的 Android项目上获得了一个空指针异常,该项目由一个分开的过程中的服务创建.如果将服务放入与主活动相同的进程中,即未指定“android:process”属性,则不会发生此崩溃.然只有当我将“android:process”添加到我的测试服务的清单文件时才会发生.

例外是:

FATAL EXCEPTION: main

    java.lang.NullPointerException
      at android.view.WindowManagerImpl.reportNewConfiguration(WindowManagerImpl.java:427)
      at android.app.ActivityThread.handleupdatePackageCompatibilityInfo(ActivityThread.java:2801)
      at android.app.ActivityThread.access$2700(ActivityThread.java:122)
      at android.app.ActivityThread$H.handlemessage(ActivityThread.java:1151)
      at android.os.Handler.dispatchmessage(Handler.java:99)
      at android.os.Looper.loop(Looper.java:132)
      at android.app.ActivityThread.main(ActivityThread.java:4123)
      at java.lang.reflect.Method.invokeNative(Native Method)
      at java.lang.reflect.Method.invoke(Method.java:491)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
      at dalvik.system.NativeStart.main(Native Method)

我的测试代码

TestActivity.java(由Wizerd生成)

package com.test;

import android.app.Activity;

public class TestActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        setContentView(R.layout.main);

        Intent intent = new Intent(this,Testservice.class);
        startservice(intent);
    }
}

Testservice.java(大多数@L_772_11@都是空的)

Package com.test;

import android.content.ComponentName;

public class Testservice extends service {
    private Boolean m_connected = false;

    private serviceConnection m_connInitservice = new serviceConnection() {
        public void onserviceConnection(ComponentName className,IBinder servicE) {
            m_connected = true;
        }

        public void onserviceDisconnected(ComponentName className) {
        }
    };

    public static class TestserviceBinder extends Binder {
    }

    public IBinder onBind(Intent intent) {
        return new TestserviceBinder();
    }

    public void onDestroy() {
        super.onDestroy();
    }

    public int onStartCommand(Intent intent,int flags,int startId) {
        return 1;
    }
}

如果我在同一过程中没有服务或服务运行测试应用程序,屏幕兼容性开关将不会导致任何问题.但是,我不明白为什么服务会在屏幕兼容性切换期间导致系统异常.这是因为服务流程是非UI流程吗?哪个可能会触发Android核心代码中的错误

解决方法

我在文档中发现了以下内容

因此,如果您指定以小写字母开头的进程名称,则应具有执行此操作的权限.但我不知道检查这些权限的位置.也许它们在WindowManagerImpl中被检查,它找不到这个全局进程,因此返回null.这只是一个假设.

大佬总结

以上是大佬教程为你收集整理的Android OS 3.2上的WindowManagerImpl中的NullPointerException全部内容,希望文章能够帮你解决Android OS 3.2上的WindowManagerImpl中的NullPointerException所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。