在这个新闻应用程序中,我不断收到充气异常



java.lang.RuntimeException:无法启动活动组件信息{com.example.newsapp.com.example.newsap.ui.MainActivity}:android.view.InflateException:中的二进制XML文件第25行com.example.newsapp:layout/activity_main:中的二进制XML文件行#25com.example.newsapp:layout/activity_main:膨胀类时出错碎片在android.app.ActivityThread.performLaunchActivity(ActivityThreads.java:3449(在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:3601(在android.app.servertransaction.LaunchActivityItem.exexecute(LaunchActivityItem.java:85(在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135(在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95(在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:2066(在android.os.Handler.dispatchMessage(Handler.java:106(在android.os.Looper.loop(Looper.java:223(在android.app.ActivityThread.main(ActivityThreads.java:7656(位于java.lang.reflect.Method.ioke(本机方法(网址:com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592(

class MainActivity : AppCompatActivity() {
lateinit var viewModel : NewsViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val newsRepository = NewsRepository(ArticleDatabase(this))
val viewModelProviderFactory = NewsViewModelProviderFactory(newsRepository)
viewModel = ViewModelProvider(this, viewModelProviderFactory).get(NewsViewModel::class.java)
bottomNavigationView.setupWithNavController(nav_host_fragment_container.findNavController())
}

<FrameLayout
android:id="@+id/flFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<fragment
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/nav_host_fragment_container"
app:defaultNavHost="true"
app:navGraph="@navigation/news_nav_graph"/>
</FrameLayout>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_width="match_parent"
android:layout_height="56dp"
app:backgroundTint="@color/grey"
app:menu="@menu/bottom_navigation_menu"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"/>

代码中有两个错误

首先,用相同的变量名命名listview和listfile

// look at that in these lines, both of them had the same variable name        
private lateinit var list: ListView
val list = dir.listFiles()

第二,在这一行中发生异常的部分

val list = dir.listFiles() // dir.listFiles() returns null 

如果你想在我理解的目录中获得文件列表,请检查这个答案

最新更新