我正在实现etsy在github上为StaggeredGrid https://github.com/etsy/AndroidStaggeredGrid提供的库。我收到的错误是布局activity_svg.xml的InflationException

<com.etsy.android.grid.StaggeredGridView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/grid_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:item_margin="8dp"
app:column_count="@integer/grid_column_count" />


android.view.InflationException二进制XML文件第3行错误,导致类com.etsy.android.grid.StaggeredGridView膨胀
根据与该问题有关的先前答案,我已经检查了构造函数:

 public StaggeredGridView(final Context context) {
    this(context, null);
}

public StaggeredGridView(final Context context, final AttributeSet attrs) {
    this(context, attrs, 0);
}

public StaggeredGridView(final Context context, final AttributeSet attrs, final int defStyle) {
    super(context, attrs, defStyle);


根据先前的答案,我还检查了文件是否位于该库中。
那么InflationException可能还有什么问题呢?为什么班级没有膨胀?

如果您希望我添加代码的更多部分,请发表评论。

最佳答案

如果您的应用程序中有自定义控件,则应使用布局XML中的完整包来指定它,如果仅使用“ yourcustomcontrol”,则会引发此错误。例如:

<yourcustomcontrol android:id="@+id/yourCustomControl1" /> will throw error.
<packageName.yourcustomcontrol android:id="@+id/yourCustomControl1" />


将工作。
有关自定义控件的更多信息,请参见android开发人员的主页here

最初回答here

07-27 22:47