【问题标题】:Error inflating class ImageView with viewbinding使用视图绑定膨胀类 ImageView 时出错
【发布时间】:2020-05-04 09:17:29
【问题描述】:

我正在为我当前的应用程序使用 ViewBinding,但是遇到了问题。

在MainActivity中,我调用了xml的inflate,但是却显示如下错误

Error

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.foxcode.androidscreenmirroring/com.foxcode.androidscreenmirroring.view.MainActivity}: android.view.InflateException: Binary XML file line #11: Binary XML file line #21: Error inflating class ImageView
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2613)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
    at android.app.ActivityThread.-wrap11(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1517)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:227)
    at android.app.ActivityThread.main(ActivityThread.java:6102)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:961)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:822)
 Caused by: android.view.InflateException: Binary XML file line #11: Binary XML file line #21: Error inflating class ImageView
    at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at com.foxcode.androidscreenmirroring.databinding.ActivityMainBinding.inflate(ActivityMainBinding.java:52)
    at com.foxcode.androidscreenmirroring.databinding.ActivityMainBinding.inflate(ActivityMainBinding.java:46)
    at com.foxcode.androidscreenmirroring.view.MainActivity.onCreate(MainActivity.java:45)
    at android.app.Activity.performCreate(Activity.java:6280)
...

这是xml代码和我调用的主要代码

activity_main.xml

<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawerLayout"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".view.MainActivity">

    <include
        android:id="@+id/data"
        layout="@layout/layout_data" />

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/nav_view"
        ... />

</androidx.drawerlayout.widget.DrawerLayout>

layout_data.xml

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@drawable/cst_background"
    >

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar" />

    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guide"
        ... />

    // error in xml
    <ImageView
        android:id="@+id/btn_connect"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/cst_background_logo"
        android:onClick="connect"
        android:padding="20dp"
        android:src="@drawable/ic_connect_wifi"
        android:tint="#EEFBFBFB"
        app:layout_constraintBottom_toTopOf="@id/guide"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
// error in code
    binding = ActivityMainBinding.inflate(getLayoutInflater());
    setContentView(binding.getRoot());
}

我已经找到了很多方法,但仍然找不到解决方案,希望你能帮助。

谢谢大家

【问题讨论】:

  • 请看这个我在stackoverflow.com/questions/61167493/…987654321@之前也遇到过这样的错误
  • @zinonX 我试过删除但还没有。悲伤的故事
  • 我认为问题出在图像上(不确定)。使用Glide库在imageView中添加图片。
  • 是的,图片有问题,但在我的应用中,我只使用 1 张图片。所以,我不使用 Glide。

标签: java android include navigation-drawer android-viewbinding


【解决方案1】:

ImageView 中删除android:background="@drawable/cst_background_logo" 这一行并

也改ImageViewdrawableandroid:src="@drawable/ic_connect_wifi"

【讨论】:

  • 我找到了答案,错误是android: src =" @ drawable / ic_connect_wifi "引起的,镜像ver24或更高,所以构建会失败
猜你喜欢
  • 2013-05-17
  • 1970-01-01
  • 2018-03-04
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多