我正在使用此xml文件在Android中创建页面:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
android:layout_width="match_parent"
android:background="@drawable/background"
android:layout_height="match_parent"
tools:context="ir.hiup.hadskalme.CategoryKids">
<android.support.constraint.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="0dp"
android:layout_height="60dp"
android:background="@drawable/backbala"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintHorizontal_bias="0.0">
<ImageView
android:id="@+id/imageView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/categorylogo"
android:layout_marginEnd="16dp" />
<ImageView
android:id="@+id/backbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/backbutton"
android:layout_marginLeft="16dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="8dp"
app:layout_constraintVertical_bias="0.545"
android:layout_marginStart="16dp" />
</android.support.constraint.ConstraintLayout>
<ScrollView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<View
android:id="@+id/c1k"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_marginRight="16dp"
android:layout_marginLeft="16dp"
android:background="@drawable/c1"
android:layout_height="220dp"
android:layout_marginTop="8dp" />
<View
android:id="@+id/c2k"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_marginRight="16dp"
android:layout_marginLeft="16dp"
android:background="@drawable/c2"
android:layout_height="220dp"
android:layout_marginTop="8dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<View
android:id="@+id/c4k"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_marginRight="16dp"
android:layout_marginLeft="16dp"
android:background="@drawable/c4"
android:layout_height="220dp"
android:layout_marginTop="8dp" />
<View
android:id="@+id/c6k"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_marginRight="16dp"
android:layout_marginLeft="16dp"
android:background="@drawable/c6"
android:layout_height="220dp"
android:layout_marginTop="8dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<View
android:id="@+id/c11k"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_marginRight="16dp"
android:layout_marginLeft="16dp"
android:background="@drawable/cf11"
android:layout_height="220dp"
android:layout_marginTop="8dp" />
<View
android:id="@+id/c12k"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_marginRight="16dp"
android:layout_marginLeft="16dp"
android:background="@drawable/c12"
android:layout_height="220dp"
android:layout_marginTop="8dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="300dp" />
</LinearLayout>
</ScrollView>
</android.support.constraint.ConstraintLayout>
现在在某些设备上我收到此错误:
lang.java.RuntimeException :(无法启动活动 ComponentInfo {ir.hiup.hadskalme / ir.hiup.hadskalme.CategoryKids}: android.view.InflateException:二进制XML文件行#127:错误 膨胀班)
答案 0 :(得分:0)
我曾经遇到过这个问题,实际上并不是一个膨胀的问题......
也许膨胀异常实际上不是问题,但实际上来自布局中的另一个更深层次的问题,然后将其包装在InflateException中。一个常见问题是在尝试加载加载可绘制资源的imageview时出现内存不足异常。如果其中一个资源具有较高的像素分辨率,则需要大量内存才会导致膨胀异常。
因此,基本上验证drawables图像中的像素分辨率只是布局所需的最小值。
答案 1 :(得分:0)
试试这个
工具:上下文= “CategoryKids”
而不是
工具:上下文= “ir.hiup.hadskalme.CategoryKids”
正如您在错误中看到的那样,“ir.hiup.hadskalme / ir.hiup.hadskalme.CategoryKids”似乎是路径重复。
答案 2 :(得分:0)
假设@drawable/cf11
是<vector>
资源......
如果用户的设备运行的是较旧的API版本,那么矢量绘图只能像PNG drawable一样使用。有关详细信息,请访问:https://developer.android.com/guide/topics/graphics/vector-drawable-resources.html#vector-drawables-backward-solution
Android加载drawable的方式,并不是每个接受可绘制ID的地方,例如在XML文件中,都支持加载矢量drawable。
要使用矢量drawable作为随机View
的背景,请在Activity
中使用此代码:
Drawable d = VectorDrawableCompat.create(getResources(), R.drawable.cf11, getTheme());
findViewById(R.id.c11k).setBackground(d);
答案 3 :(得分:0)
Leonardo Cavazzani的解决方案非常正确。真正的问题是活动中使用的背景图像的大小。我有一个非常高分辨率的背景图像,并且遇到了同样的错误。我在互联网上四处张望,每个人都建议更改主题或Maven,或添加“实现应用程序兼容性”。等到构建gradle,但没有一个起作用。将背景图片的分辨率从超过5000x4000像素降低到仅200像素后,我的应用停止了崩溃。但是,奇怪的是,我从来没有在相同的背景下遇到过这个问题,只是在我更新到Android Studio 3.4.2之后它开始蔓延。