Я создаю простое приложение, которое содержит изображения в адаптере, оно отлично работает в эмуляторе, но не на телефоне
Сетка и адаптер, показывая мне ошибку, которую я потратил 3 дня, чтобы найти ошибку в Google
gridAdapter
public class Grid_Adapter extends BaseAdapter {
Integer[] image_grid;
String[] info;
private String[] disc;
private Context c;
private LayoutInflater inflater;
Grid_Adapter(Application applicationContext, Integer[] image_grid, String[] info, String[] disc) {
this.c = applicationContext;
this.image_grid = image_grid;
this.info = info;
this.disc = disc;
inflater = (LayoutInflater.from(applicationContext));
}
@Override
public int getCount() {
return image_grid.length;
}
@Override
public Object getItem(int position) {
return image_grid[position];
}
@Override
public long getItemId(int position) {
return position;
}
@SuppressLint({"ViewHolder", "InflateParams"})
@Override
public View getView(int position, View view, ViewGroup parent) {
if (inflater == null)
inflater = LayoutInflater.from(this.c);
if (view == null)
view = inflater.inflate(R.layout.grid_item, null);
ImageView image_g = view.findViewById(R.id.image_grid);
image_g.setImageResource(image_grid[position]);
TextView tv = view.findViewById(R.id.txthint);
tv.setText(info[position]);
TextView tv2 = view.findViewById(R.id.txthint2);
tv2.setText(disc[position]);
return view;
}
}
gridActivity
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grid_activities1);
gridView=findViewById(R.id.gridview);
Grid_Adapter gridAdapter=new Grid_Adapter(getApplication(),image_grid,info,disc);
gridView.setAdapter(gridAdapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent,View view,int position,long id){
Intent intent=new Intent(Grid_activities1.this,Image_show.class);
intent.putExtra("images",image_grid[position]);
intent.putExtra("text",info[position]);
intent.putExtra("text2",disc[position]);
startActivity(intent);
}
});
}
ошибка
E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: main> Процесс: com.activities.children, PID: 1040> java.lang.OutOfMemoryError: Не удалось выделить 44800012 байтового выделения с 12576840 свободных байтов и 11 МБ до OOM> в системе dalvik.system.VMRuntime.newNonMovableArray (собственный метод)> в android.graphics.BitmapFactory.nativeDecodeAsset (собственный метод)> в android.graphics.BitmapFactory.decodeStream (BitmapFactory.java:856)> в android.graphics.BitmapFactory.decodejactourceream (675) на android.graphics.drawable.Drawable.createFromResourceStream (Drawable.java:2228) на android.content.res.Resources.loadDrawableForCookie (Resources.java:4215) на иroid.content.res.Resources.loadDrawable (Resources.java:4089)> на android.content.res.Resources.getDrawable (Resources.java:2005)> на android.content.res.Resources.getDrawable (Resources.java:1987)> в android.content.Context.getDrawable (Context.java:464)> в android.widget.ImageView.resolveUri (ImageView.java:827)> в android.widget.ImageView.setImageResource (ImageView.java:434)> на com.activities.children.Grid_Adapter.getView (Grid_Adapter.java:61)> на android.widget.AbsListView.obtainView (AbsListView.java:2929)> на android.widget.GridView.makeAndAddView (GridView.java:1463)> на android.widget.GridView.makeRow (GridView.java:366)> на android.widget.GridView.fillDown (GridView.java:307)> на android.widget.GridView.fillFromTop (GridView.java:442)> наandroid.widget.GridView.layoutChildren (GridView.java:1291)> в android.widget.AbsListView.onLayout (AbsListView.java:2723)> в android.view.View.layout (View.java:17938)> в android.view.ViewGroup.layout (ViewGroup.java:5812)> на андроid.widget.LinearLayout.setChildFrame (LinearLayout.java:1742)> в android.widget.LinearLayout.layoutHor Horizontal (LinearLayout.java:1731) в android.widget.LinearLayout.onLayout (LinearLayout.jroid:1496).View.layout (View.java:17938)> в android.view.ViewGroup.layout (ViewGroup.java:5812)> в android.widget.FrameLayout.layoutChildren (FrameLayout.java:344)> в android.widget.FrameLayout.onLayout (FrameLayout.java:281)> в android.view.View.layout (View.java:17938)> в android.view.ViewGroup.layout (ViewGroup.java:5812)> в android.widget.LinearLayout.setChildFrame(LinearLayout.java:1742)> в android.widget.LinearLayout.layoutVertical (LinearLayout.java:1585) в android.widget.LinearLayout.onLayout (LinearLayout.java:1494)> в android.view.View.layout (Просмотреть.java: 17938)> в android.view.ViewGroup.layout (ViewGroup.java:5812)> в android.widget.FrameLayout.layoutChildren (FrameLayout.java:344)> в android.widget.FrameLayout.onLayout (FrameLayout.java:281)> на android.view.View.layout (View.java:17938)> на android.view.ViewGroup.layout (ViewGroup.java:5812)> на android.widget.LinearLayout.setChildFrame (LinearLayout.java:1742)> на android.widget.LinearLayout.layoutVertical (LinearLayout.java:1585) в android.widget.LinearLayout.onLayout (LinearLayout.java:1494)> в android.view.View.layout (View.java:17938)> в android.view.ViewGroup.layout (ViewGroup.java: 5812)> в android.widget.FrameLayout.layoutChildren (FrameLayout.java:344)> в android.widget.FrameLayout.onLayout (FrameLayout.java:281)> в com.android.internal.policy.PhoneWindow $ DecorView.onLayout (PhoneWindow.java:3193)на android.view.View.layout (View.java:17938)> на android.view.ViewGroup.layout (ViewGroup.java:5812)> на android.view.ViewRootImpl.performLayout (ViewRootImpl.java:2666)> на android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2367)> в android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1437)> в android.view.ViewRootImpl $ TraversalRunnable.run (at) .jpg.представление.Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:906) на android.os.Handler.handleCallback (Handler.java:739)> на android.os.Handler.dispatchMessage (Handler.java:95)> на android.os.Looper.loop (Looper.java:158)> на android.app.Acti