android - 在 Android.view.inflateexception 二进制 xml 文件处停止了应用程序
问题描述
我试图从 4 小时内解决我的问题,但我没有找到答案
这是 Grid_dif
public class Grid_dif extends BaseAdapter {
Integer []image_grid2;
Context c;
LayoutInflater inflater;
public Grid_dif( Application applicationContext,Integer[] image_grid2) {
this.image_grid2 = image_grid2;
this.c = applicationContext;
inflater=(LayoutInflater.from(applicationContext));
}
@Override
public int getCount() {
return image_grid2.length;
}
@Override
public Object getItem(int position) {
return image_grid2[position];
}
@Override
public long getItemId(int position) {
return position;
}
@SuppressLint("ViewHolder")
@Override
public View getView(int position, View view, ViewGroup parent) {
view=inflater.inflate(R.layout.grid_item2,null);
ImageView image_g=view.findViewById(R.id.image_grid2);
image_g.setImageResource(image_grid2[position]);
return view;
}
}
网格 item2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="#fff"
android:layout_height="match_parent">
<ImageView
android:layout_width="270dp"
android:layout_height="150dp"
android:id="@+id/image_grid2"
android:src="@drawable/image"
/>
</RelativeLayout>
这是错误
E/InputEventReceiver: Exception dispatching input event. E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback E/MessageQueue-JNI: android.view.InflateException: Binary XML file line #7: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:633)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at com.activities.children.Grid_dif.getView(Grid_dif.java:41)
at android.widget.AbsListView.obtainView(AbsListView.java:2467)
at android.widget.GridView.makeAndAddView(GridView.java:1438)
at android.widget.GridView.makeRow(GridView.java:366)
at android.widget.GridView.fillDown(GridView.java:307)
at android.widget.GridView.fillGap(GridView.java:267)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5477)
at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3620)
at android.widget.AbsListView.onTouchMove(AbsListView.java:4101)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:3880)
at android.view.View.dispatchTouchEvent(View.java:8601)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2513)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2157)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2484)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1800)
at android.app.Activity.dispatchTouchEvent(Activity.java:2856)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:68)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2445)
at android.view.View.dispatchPointerEvent(View.java:8807)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4764)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4594)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4096)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4149)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4115)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4252)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4123)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4309)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4096)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4149)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4115)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4123)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4096)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6565)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6539)
at android.vie
解决方案
您的充气机未初始化。将您的 getView(..) 方法替换为:
public View getView(int position, View view, ViewGroup parent) {
if(inflater==null)
inflater = LayoutInflater.from(this.c);
//it is also unnecessary to reinitialize the view everytime this callback is called. Take advantage of recycling feature of the list.
if(view ==null)
view = inflater.inflate(R.layout.grid_item2,null);
ImageView image_g=view.findViewById(R.id.image_grid2);
image_g.setImageResource(image_grid2[position]);
return view;
}
另外,请检查您在构造函数上传递的上下文类型,它应该是使用适配器的活动,或者如果它的片段,则传递片段 getActivity() 覆盖。
活动:
new Grid_dif(MyActivity.this, ..);
分段:
new Grid_dif(this.getActivity(), ..)
推荐阅读
- python - 如何使用 FLASK 将新行从 python 字符串渲染到 HTML 模板?
- ruby-on-rails - 如何在版本化的 Active 模型序列化程序中制作 RESTful 根键?
- python - 有没有办法检查共享远程服务器的可用计算能力?
- python-3.x - 在 Airflow 回填 Dag 中诱导睡眠延迟
- c++ - 如何像在 Python 中一样在 C++ 中实现 f-string?
- python - 检查代码库是否与特定版本的 python3 兼容
- github - 如果 repo 是组织存储库,AWS CodePipeline GitHub webhook 无法注册到 GitHub
- java - 为什么我的 Spring Boot 应用程序中出现“无法解析 ch.qos.logback:logback-core:1.2.3”?
- python - Numpy - 如何对子数组进行矢量化
- powershell - Powershell 禁止所有安装程序启动的重新启动