提问人:rminaj 提问时间:9/14/2023 最后编辑:rminaj 更新时间:9/14/2023 访问量:56
应用程序卡在以前运行良好的 Binding.inflate 的原因可能是什么?
What could be the reason that an app can get stuck at Binding.inflate which previously works fine?
问:
在意识到我的应用程序似乎表现不佳后,我做了一些聪明的调试策略,即在我的代码和一些厚颜无耻的调试断点之间添加调用,我意识到我的代码似乎没有越过我的代码行。而且我也没有收到任何错误。相关代码如下:Log
MainActivity
binding = ActivityMainBinding.inflate(layoutInflater)
Log.d(TAG, "before mainActBind")
binding = ActivityMainBinding.inflate(layoutInflater)
Log.d(TAG, "after mainActBind")
setContentView(binding.root)
Log.d(TAG, "after setContent")
setSupportActionBar(binding.appContentMain.toolbar)
Log.d(TAG, "after setSupportActionBar")
这些是我的 中最上面的行代码,我仍然在那里。MainActivity
onCreate
super.onCreate(savedInstanceState)
我在 Logcat 中得到的内容如下所示:
RenderThread::setGrContext()
Checking for metadata for AppLocalesMetadataHolderService : Service not found
Access denied finding property "vendor.mali.config"
RenderThread::setGrContext()
Checking for metadata for AppLocalesMetadataHolderService : Service not found
before mainActBind
Compat change id reported: 210923482; UID 10259; state: ENABLED
Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, reflection, allowed)
Accessing hidden method Ljava/lang/invoke/MethodHandles$Lookup;-><init>(Ljava/lang/Class;I)V (unsupported, reflection, allowed)
我目前正在运行 Android Studio Giraffe 2022.3.1 补丁 1。我已经做了 Invalidate Caches、Clean、Rebuild 和 Make Project。
我已经尝试过使用 ,但似乎不起作用DataBindingUtil.setContentView(this, R.layout.activity_main)
这是我activity_main.xml的样子:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
</data>
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
android:id="@+id/app_content_main"
layout="@layout/app_content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/drawer_menu" />
</androidx.drawerlayout.widget.DrawerLayout>
</layout>
答:
0赞
ninhnau19
9/14/2023
#1
确保您的 XML 布局文件没有错误。
您可以尝试在XML文件中添加标签
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
</data>
</layout>
评论
0赞
rminaj
9/14/2023
好吧,我的activity_main.xml很简单,所以我不认为这是问题的原因。我将在我的问题上添加布局
0赞
rminaj
9/14/2023
#2
愚蠢的我,我已经发现了问题所在。从本质上讲,我的 s 正在等待即将初始化的东西,而那些等待的代码阻止了所有内容的执行,包括他们需要的类的初始化。因此,我将这些等待代码移至该代码,并解决了该问题。Fragment
MainActivity
onStart
评论