【错误记录】布局组件加载错误 ( Attempt to invoke virtual method ‘xxx$Callback android.view.Window.getCallback()‘ )

简介: 【错误记录】布局组件加载错误 ( Attempt to invoke virtual method ‘xxx$Callback android.view.Window.getCallback()‘ )

文章目录

一、报错信息

二、解决方案





一、报错信息


使用环境 :


Kotlin 编写的 Activity

使用了 kotlin-android-extensions 扩展插件 , 在 build.gradle 中配置的 apply plugin: 'kotlin-android-extensions' ;

在 Activity 界面中使用了 var texts: Array<TextView> = arrayOf(text0, text1) 代码 ;

2021-03-26 11:30:49.653 8620-8620/cn.hsl.example E/AndroidRuntime: FATAL EXCEPTION: main
    Process: cn.hsl.example, PID: 8620
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{cn.hsl.example/cn.hsl.example.xxxActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2881)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6718)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
        at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:120)
        at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:155)
        at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:31)
        at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:55)
        at android.support.v7.app.AppCompatDelegateImplV23.<init>(AppCompatDelegateImplV23.java:33)
        at android.support.v7.app.AppCompatDelegateImplN.<init>(AppCompatDelegateImplN.java:33)
        at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:201)
        at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:185)
        at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:519)
        at android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:190)
        at cn.hsl.example.xxxActivity._$_findCachedViewById(Unknown Source:25)
        at cn.hsl.example.xxxActivity.<init>(ReactionDrumActivity.kt:47)
        at java.lang.Class.newInstance(Native Method)
        at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:69)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2869)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6718) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 
2021-03-26 11:30:49.654 8620-8620/cn.hsl.example E/DEBUG: begin to generate java report
2021-03-26 11:30:49.659 8620-8620/cn.hsl.example E/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2021-03-26 11:30:49.661 8620-8620/cn.hsl.example E/DEBUG: Basic Information: 'pid: 8620/tid: 8620/time: 20210326113049'
2021-03-26 11:30:49.662 8620-8620/cn.hsl.example E/DEBUG: Cpu Information: 'abi: arm64-v8a,armeabi-v7a,armeabi/processor: AArch64 Processor rev 1 (aarch64)/hardware: Qualcomm Technologies, Inc MSM8998'
2021-03-26 11:30:49.662 8620-8620/cn.hsl.example E/DEBUG: Mobile Information: 'model: Pixel 2/version: 9/sdk: 28'
2021-03-26 11:30:49.662 8620-8620/cn.hsl.example E/DEBUG: Build fingerprint: 'google/walleye/walleye:9/PQ3A.190801.002/5670241:user/release-keys'
2021-03-26 11:30:49.664 8620-8620/cn.hsl.example E/DEBUG: Runtime Information: 'start: 20210326113042/maxheap: 201326592/primaryabi: arm64-v8a/ground: bg'
2021-03-26 11:30:49.665 8620-8620/cn.hsl.example E/DEBUG: Application Information: 'version: 0.1/subversion: release/buildseq: d79b3587/versioncode: 1'
2021-03-26 11:30:49.665 8620-8620/cn.hsl.example E/DEBUG: CrashSDK Information: 'version: 3.2.0.4/nativeseq: 0/javaseq: 200403192109/arch: /target: umeng'
2021-03-26 11:30:49.666 8620-8620/cn.hsl.example E/DEBUG: Report Name: 5f3cf3dfd3093221547aec89_0.1_d79b3587_Pixel-2_9_161672944965535295_20210326113049_bg_ucebujava.log
2021-03-26 11:30:49.666 8620-8620/cn.hsl.example E/DEBUG: UUID: 1affcaf9-c824-4c86-acfe-80132e09c1fb
2021-03-26 11:30:49.667 8620-8620/cn.hsl.example E/DEBUG: Log Type: ucebujava
2021-03-26 11:30:49.667 8620-8620/cn.hsl.example E/DEBUG: Activity: (none)
2021-03-26 11:30:49.667 8620-8620/cn.hsl.example E/DEBUG: --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
2021-03-26 11:30:49.667 8620-8620/cn.hsl.example E/DEBUG: um_app_key: 5f3cf3dfd3093221547aec89
2021-03-26 11:30:49.667 8620-8620/cn.hsl.example E/DEBUG: um_app_channel: Umeng
2021-03-26 11:30:49.667 8620-8620/cn.hsl.example E/DEBUG: um_os: android
2021-03-26 11:30:49.668 8620-8620/cn.hsl.example E/DEBUG: um_crash_sdk_version: v0.0.5
2021-03-26 11:30:49.668 8620-8620/cn.hsl.example E/DEBUG: um_umid_header: ai3406fbd3ecf72697d53b52606d7202ee
2021-03-26 11:30:49.668 8620-8620/cn.hsl.example E/DEBUG: --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
2021-03-26 11:30:49.668 8620-8620/cn.hsl.example E/DEBUG: Process Name: 'cn.hsl.example'
2021-03-26 11:30:49.668 8620-8620/cn.hsl.example E/DEBUG: Thread Name: 'main'
2021-03-26 11:30:49.668 8620-8620/cn.hsl.example E/DEBUG: Back traces starts.
2021-03-26 11:30:49.668 8620-8620/cn.hsl.example W/cn.hsl.example: Accessing hidden field Ljava/lang/Throwable;->detailMessage:Ljava/lang/String; (light greylist, reflection)
2021-03-26 11:30:49.669 8620-8620/cn.hsl.example E/DEBUG: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{cn.hsl.example/cn.hsl.example.xxxActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
2021-03-26 11:30:49.670 8620-8620/cn.hsl.example E/DEBUG:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2881)
2021-03-26 11:30:49.670 8620-8620/cn.hsl.example E/DEBUG:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
2021-03-26 11:30:49.670 8620-8620/cn.hsl.example E/DEBUG:     at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
2021-03-26 11:30:49.670 8620-8620/cn.hsl.example E/DEBUG:     at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
2021-03-26 11:30:49.670 8620-8620/cn.hsl.example E/DEBUG:     at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
2021-03-26 11:30:49.671 8620-8620/cn.hsl.example E/DEBUG:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
2021-03-26 11:30:49.671 8620-8620/cn.hsl.example E/DEBUG:     at android.os.Handler.dispatchMessage(Handler.java:106)
2021-03-26 11:30:49.671 8620-8620/cn.hsl.example E/DEBUG:     at android.os.Looper.loop(Looper.java:193)
2021-03-26 11:30:49.671 8620-8620/cn.hsl.example E/DEBUG:     at android.app.ActivityThread.main(ActivityThread.java:6718)
2021-03-26 11:30:49.671 8620-8620/cn.hsl.example E/DEBUG:     at java.lang.reflect.Method.invoke(Native Method)
2021-03-26 11:30:49.672 8620-8620/cn.hsl.example E/DEBUG:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
2021-03-26 11:30:49.672 8620-8620/cn.hsl.example E/DEBUG:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2021-03-26 11:30:49.672 8620-8620/cn.hsl.example E/DEBUG: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
2021-03-26 11:30:49.672 8620-8620/cn.hsl.example E/DEBUG:     at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:120)
2021-03-26 11:30:49.673 8620-8620/cn.hsl.example E/DEBUG:     at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:155)
2021-03-26 11:30:49.673 8620-8620/cn.hsl.example E/DEBUG:     at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:31)
2021-03-26 11:30:49.673 8620-8620/cn.hsl.example E/DEBUG:     at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:55)
2021-03-26 11:30:49.673 8620-8620/cn.hsl.example E/DEBUG:     at android.support.v7.app.AppCompatDelegateImplV23.<init>(AppCompatDelegateImplV23.java:33)
2021-03-26 11:30:49.673 8620-8620/cn.hsl.example E/DEBUG:     at android.support.v7.app.AppCompatDelegateImplN.<init>(AppCompatDelegateImplN.java:33)
2021-03-26 11:30:49.674 8620-8620/cn.hsl.example E/DEBUG:     at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:201)
2021-03-26 11:30:49.674 8620-8620/cn.hsl.example E/DEBUG:     at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:185)
2021-03-26 11:30:49.674 8620-8620/cn.hsl.example E/DEBUG:     at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:519)
2021-03-26 11:30:49.674 8620-8620/cn.hsl.example E/DEBUG:     at android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:190)
2021-03-26 11:30:49.674 8620-8620/cn.hsl.example E/DEBUG:     at cn.hsl.example.xxxActivity._$_findCachedViewById(Unknown Source:25)
2021-03-26 11:30:49.675 8620-8620/cn.hsl.example E/DEBUG:     at cn.hsl.example.xxxActivity.<init>(ReactionDrumActivity.kt:47)
2021-03-26 11:30:49.675 8620-8620/cn.hsl.example E/DEBUG:     at java.lang.Class.newInstance(Native Method)
2021-03-26 11:30:49.675 8620-8620/cn.hsl.example E/DEBUG:     at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:69)
2021-03-26 11:30:49.675 8620-8620/cn.hsl.example E/DEBUG:     at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
2021-03-26 11:30:49.675 8620-8620/cn.hsl.example E/DEBUG:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2869)
2021-03-26 11:30:49.676 8620-8620/cn.hsl.example E/DEBUG:  ... 11 more
2021-03-26 11:30:49.676 8620-8620/cn.hsl.example E/DEBUG: Back traces ends.
2021-03-26 11:30:49.676 8620-8620/cn.hsl.example E/DEBUG: --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
2021-03-26 11:30:49.676 8620-8620/cn.hsl.example E/DEBUG: meminfo:
2021-03-26 11:30:49.676 8620-8620/cn.hsl.example E/DEBUG: MemTotal:        3744240 kB
    MemFree:           49476 kB
    MemAvailable:    1212412 kB
    Buffers:           11908 kB
    Cached:          1305404 kB
    SwapCached:         8600 kB
    Active:          1594884 kB
    Inactive:         960020 kB
    Active(anon):    1010644 kB
    Inactive(anon):   375444 kB
    Active(file):     584240 kB
    Inactive(file):   584576 kB
    Unevictable:      146832 kB
    Mlocked:          146832 kB





二、解决方案


上述错误就是在 setContentView(R.layout.xxx) 之前调用 findViewById 导致的错误 ;


在 var texts: Array<TextView> = arrayOf(text0, text1) 代码中的 text0 是布局中的 R.id.text0 组件 , 该位置实际上是调用了 (TextView)findViewById(R.id.text0) 方法 , 但是调用该方法的前提是已经设置了布局 ;


修改方案 :


① 成员变量中不进行赋值 , 使用延迟加载 , lateinit var texts: Array<TextView> ;


② 在 onCreate 方法中 setContentView 方法之后再进行赋值 ;


override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.xxx)
  texts = arrayOf(text0, text1)
    }


目录
相关文章
|
1月前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
2月前
|
存储 Android开发 开发者
深入理解安卓应用开发的核心组件
【10月更文挑战第8天】探索Android应用开发的精髓,本文带你了解安卓核心组件的奥秘,包括Activity、Service、BroadcastReceiver和ContentProvider。我们将通过代码示例,揭示这些组件如何协同工作,构建出功能强大且响应迅速的应用程序。无论你是初学者还是资深开发者,这篇文章都将为你提供新的视角和深度知识。
|
2月前
|
数据可视化 Android开发 开发者
安卓应用开发中的自定义View组件
【10月更文挑战第5天】在安卓应用开发中,自定义View组件是提升用户交互体验的利器。本篇将深入探讨如何从零开始创建自定义View,包括设计理念、实现步骤以及性能优化技巧,帮助开发者打造流畅且富有创意的用户界面。
94 0
|
13天前
|
XML 搜索推荐 前端开发
安卓开发中的自定义视图:打造个性化UI组件
在安卓应用开发中,自定义视图是一种强大的工具,它允许开发者创造独一无二的用户界面元素,从而提升应用的外观和用户体验。本文将通过一个简单的自定义视图示例,引导你了解如何在安卓项目中实现自定义组件,并探讨其背后的技术原理。我们将从基础的View类讲起,逐步深入到绘图、事件处理以及性能优化等方面。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
7月前
|
Android开发 算法 架构师
android的基础ui组件,这些知识点你会吗
android的基础ui组件,这些知识点你会吗
android的基础ui组件,这些知识点你会吗
|
2月前
|
XML 前端开发 Java
安卓应用开发中的自定义View组件
【10月更文挑战第5天】自定义View是安卓应用开发的一块基石,它为开发者提供了无限的可能。通过掌握其原理和实现方法,可以创造出既美观又实用的用户界面。本文将引导你了解自定义View的创建过程,包括绘制技巧、事件处理以及性能优化等关键步骤。
|
2月前
|
测试技术 数据库 Android开发
深入解析Android架构组件——Jetpack的使用与实践
本文旨在探讨谷歌推出的Android架构组件——Jetpack,在现代Android开发中的应用。Jetpack作为一系列库和工具的集合,旨在帮助开发者更轻松地编写出健壮、可维护且性能优异的应用。通过详细解析各个组件如Lifecycle、ViewModel、LiveData等,我们将了解其原理和使用场景,并结合实例展示如何在实际项目中应用这些组件,提升开发效率和应用质量。
51 6
|
3月前
|
存储 开发框架 数据可视化
深入解析Android应用开发中的四大核心组件
本文将探讨Android开发中的四大核心组件——Activity、Service、BroadcastReceiver和ContentProvider。我们将深入了解每个组件的定义、作用、使用方法及它们之间的交互方式,以帮助开发者更好地理解和应用这些组件,提升Android应用开发的能力和效率。
261 5
|
3月前
|
缓存 搜索推荐 Android开发
安卓应用开发中的自定义View组件实践
【9月更文挑战第10天】在安卓开发领域,自定义View是提升用户体验和实现界面个性化的重要手段。本文将通过一个实际案例,展示如何在安卓项目中创建和使用自定义View组件,包括设计思路、实现步骤以及可能遇到的问题和解决方案。文章不仅提供了代码示例,还深入探讨了自定义View的性能优化技巧,旨在帮助开发者更好地掌握这一技能。
|
4月前
|
存储 搜索推荐 Java
探索安卓开发中的自定义视图:打造个性化UI组件Java中的异常处理:从基础到高级
【8月更文挑战第29天】在安卓应用的海洋中,一个独特的用户界面(UI)能让应用脱颖而出。自定义视图是实现这一目标的强大工具。本文将通过一个简单的自定义计数器视图示例,展示如何从零开始创建一个具有独特风格和功能的安卓UI组件,并讨论在此过程中涉及的设计原则、性能优化和兼容性问题。准备好让你的应用与众不同了吗?让我们开始吧!