1.you have to scale down your bitmaps by seeing best practices by android developers https://developer.android.com/training/displaying-bitmaps/load-bitmap.html#read-bitmap
2. you have to process bitmap off the UI thread. check this.. https://developer.android.com/training/displaying-bitmaps/process-bitmap.html 3. If you load any images from resource also scale down its size. Thanks hope this helps you out.. Couple off days ago i also solve the problem by using these links.. On Thu, Nov 17, 2016 at 1:27 AM, Chairi Kiourt <[email protected]> wrote: > Any help please??? > > > > > On Tuesday, November 15, 2016 at 7:04:11 PM UTC+2, Chairi Kiourt wrote: >> >> Hi everyone i am new to android >> >> I have an app which gets data from a mysql by using php. The problem is >> that the application crashes some times unexpectivly, i put the firebase >> crash report and i get the following errors: >> >> Exception java.lang.IllegalStateException: ImageLoader must be init with >> configuration before using >> com.nostra13.universalimageloader.core.ImageLoader.checkConfiguration ( >> ImageLoader.java:568) >> com.nostra13.universalimageloader.core.ImageLoader.displayImage ( >> ImageLoader.java:208) >> com.nostra13.universalimageloader.core.ImageLoader.displayImage ( >> ImageLoader.java:365) >> com.nostra13.universalimageloader.core.ImageLoader.displayImage ( >> ImageLoader.java:340) >> forme.restaurant.digital.menu.view.ImageUtil.displayRoundImage (ImageUtil >> .java:29) >> forme.restaurant.digital.menu.activities.RecycleViewAdapterNew.onBindViewHolder >> (RecycleViewAdapterNew.java:108) >> forme.restaurant.digital.menu.activities.RecycleViewAdapterNew.onBindViewHolder >> (RecycleViewAdapterNew.java:36) >> android.support.v7.widget.RecyclerView$Adapter.bindViewHolder ( >> RecyclerView.java:5138) >> android.support.v7.widget.RecyclerView$Recycler.getViewForPosition ( >> RecyclerView.java:4433) >> android.support.v7.widget.RecyclerView$Recycler.getViewForPosition ( >> RecyclerView.java:4326) >> android.support.v7.widget.LinearLayoutManager$LayoutState.next ( >> LinearLayoutManager.java:1955) >> android.support.v7.widget.LinearLayoutManager.layoutChunk ( >> LinearLayoutManager.java:1364) >> android.support.v7.widget.LinearLayoutManager.fill (LinearLayoutManager. >> java:1327) >> android.support.v7.widget.LinearLayoutManager.onLayoutChildren ( >> LinearLayoutManager.java:556) >> android.support.v7.widget.RecyclerView.dispatchLayout (RecyclerView.java: >> 2713) >> android.support.v7.widget.RecyclerView.onLayout (RecyclerView.java:3011) >> android.view.View.layout (View.java:15905) >> android.view.ViewGroup.layout (ViewGroup.java:5108) >> android.widget.LinearLayout.setChildFrame (LinearLayout.java:1959) >> android.widget.LinearLayout.layoutVertical (LinearLayout.java:1813) >> android.widget.LinearLayout.onLayout (LinearLayout.java:1722) >> android.view.View.layout (View.java:15905) >> android.view.ViewGroup.layout (ViewGroup.java:5108) >> android.widget.FrameLayout.layoutChildren (FrameLayout.java:633) >> android.widget.FrameLayout.onLayout (FrameLayout.java:568) >> android.view.View.layout (View.java:15905) >> android.view.ViewGroup.layout (ViewGroup.java:5108) >> android.support.v7.internal.widget.ActionBarOverlayLayout.onLayout ( >> ActionBarOverlayLayout.java:493) >> android.view.View.layout (View.java:15905) >> android.view.ViewGroup.layout (ViewGroup.java:5108) >> android.widget.FrameLayout.layoutChildren (FrameLayout.java:633) >> android.widget.FrameLayout.onLayout (FrameLayout.java:568) >> android.view.View.layout (View.java:15905) >> android.view.ViewGroup.layout (ViewGroup.java:5108) >> android.widget.LinearLayout.setChildFrame (LinearLayout.java:1959) >> android.widget.LinearLayout.layoutVertical (LinearLayout.java:1813) >> android.widget.LinearLayout.onLayout (LinearLayout.java:1722) >> android.view.View.layout (View.java:15905) >> android.view.ViewGroup.layout (ViewGroup.java:5108) >> android.widget.FrameLayout.layoutChildren (FrameLayout.java:633) >> android.widget.FrameLayout.onLayout (FrameLayout.java:568) >> android.view.View.layout (View.java:15905) >> android.view.ViewGroup.layout (ViewGroup.java:5108) >> android.view.ViewRootImpl.performLayout (ViewRootImpl.java:2425) >> android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2131) >> android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1256) >> android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:6443) >> android.view.Choreographer$CallbackRecord.run (Choreographer.java:800) >> android.view.Choreographer.doCallbacks (Choreographer.java:603) >> android.view.Choreographer.doFrame (Choreographer.java:572) >> android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer. >> java:786) >> android.os.Handler.handleCallback (Handler.java:815) >> android.os.Handler.dispatchMessage (Handler.java:104) >> android.os.Looper.loop (Looper.java:194) >> android.app.ActivityThread.main (ActivityThread.java:5576) >> java.lang.reflect.Method.invoke (Method.java) >> java.lang.reflect.Method.invoke (Method.java:372) >> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit. >> java:955) >> com.android.internal.os.ZygoteInit.main (ZygoteInit.java:750) >> >> I have these code >> >> >> CusDi.java >> public class CusDi extends AppCompatActivity { >> >> protected void onCreate(Bundle savedInstanceState) { >> >> >> getCusDi(); >> >> >> } >> >> private void getCusDi() { >> M.showLoadingDialog(CusDi.this); >> CusDiAPI mCommentsAPI = APIService.createService(CusDiAPI.class); >> mCommentsAPI.getUserPosts(cuisineid, new Callback<List<CusDiPojo>>() { >> >> >> @Override >> public void success(List<CusDiPojo> cusDiPojos, Response response) { >> if (cusDiPojos != null) { >> cusdilist = cusDiPojos; >> for (CusDiPojo cusdidata : cusdilist) { >> String cstdiid=cusdidata.getDisid(); >> String cstcuiid=cusdidata.getCusineid(); >> String cstdiname=cusdidata.getDishname(); >> String cstditype=cusdidata.getDishtype(); >> String cstdes=cusdidata.getDescription(); >> String cstprice=cusdidata.getPrice(); >> String cstdimg=cusdidata.getDishimage(); >> cusdilist.add(cstdiid); >> cuscuiidlist.add(cstcuiid); >> cusdnamelist.add(cstdiname); >> cusdtypelist.add(cstditype); >> cusdeslist.add(cstdes); >> cusdpricelist.add(cstprice); >> cusimglist.add(cstdimg); >> } >> recycleradapternew = new RecycleViewAdapterNew(CusDi.this, >> getApplicationContext(), cusdilist); >> mRecyclerView1.setAdapter(recycleradapternew); >> } >> M.hideLoadingDialog(); >> } >> >> @Override >> public void failure(RetrofitError error) { >> M.hideLoadingDialog(); >> Log.e("error", error.getMessage()); >> } >> }); >> } >> >> >> } >> >> >> >> >> >> >> RecycleViewAdapterNew.java >> >> public class RecycleViewAdapterNew extends >> RecyclerView.Adapter<RecycleViewAdapterNew.DataObjectHolder> { >> >> public void onBindViewHolder(final DataObjectHolder holder, final int >> position) { >> >> ImageUtil.displayRoundImage(holder.imgdish, DataManager.URL + >> custdisheslist.get(position).getDishimage(), null); //this is the lie 108 >> >> } >> >> >> } >> >> >> >> >> >> ImageUtil.java >> >> public class ImageUtil { >> >> public static void loadImage(String path, ImageLoadingListener listener) { >> ImageLoader loader = ImageLoader.getInstance(); >> try { >> loader.loadImage(path, DEFAULT_DISPLAY_IMAGE_OPTIONS, listener); >> } catch (OutOfMemoryError e) { >> e.printStackTrace(); >> } >> } >> >> >> } >> >> >> After i search the internet i fount out this link1 >> <http://stackoverflow.com/questions/17737858/android-imageloader-must-be-init-with-configuration-before-using-in-uil> >> link >> 2 >> <http://stackoverflow.com/questions/32560751/android-image-loader-error>, >> but i didnot understand how to implement it. Can you please help me?? >> >> >> Also i have this error some times,can you provide me any solution. >> >> Exception java.lang.OutOfMemoryError: Failed to allocate a 79888 byte >> allocation with 10833 free bytes and 10KB until OOM >> java.lang.String.<init> (String.java:233) >> libcore.io.IoUtils$FileReader.toString (IoUtils.java:274) >> libcore.io.IoUtils.readFileAsString (IoUtils.java:116) >> com.android.org.conscrypt.CertPinManager.readPinFile (CertPinManager.java >> :120) >> com.android.org.conscrypt.CertPinManager.ensureInitialized >> (CertPinManager.java:92) >> com.android.org.conscrypt.CertPinManager.lookup (CertPinManager.java:136) >> com.android.org.conscrypt.CertPinManager.isChainValid >> (CertPinManager.java:72) >> com.android.org.conscrypt.TrustManagerImpl.checkTrusted >> (TrustManagerImpl.java:302) >> com.android.org.conscrypt.TrustManagerImpl.checkServerTrusted >> (TrustManagerImpl.java:219) >> com.android.org.conscrypt.Platform.checkServerTrusted (Platform.java:113) >> com.android.org.conscrypt.OpenSSLSocketImpl.verifyCertificateChain >> (OpenSSLSocketImpl.java:540) >> com.android.org.conscrypt.NativeCrypto.SSL_do_handshake >> (NativeCrypto.java) >> com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake >> (OpenSSLSocketImpl.java:307) >> com.android.okhttp.Connection.upgradeToTls (Connection.java:201) >> com.android.okhttp.Connection.connect (Connection.java:155) >> com.android.okhttp.internal.http.HttpEngine.connect (HttpEngine.java:282) >> com.android.okhttp.internal.http.HttpEngine.sendRequest (HttpEngine.java >> :216) >> com.android.okhttp.internal.http.HttpURLConnectionImpl.execute >> (HttpURLConnectionImpl.java:382) >> com.android.okhttp.internal.http.HttpURLConnectionImpl.connect >> (HttpURLConnectionImpl.java:106) >> com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream >> (HttpURLConnectionImpl.java:208) >> com.android.okhttp.internal.http.DelegatingHttpsURLConnection.getOutputStream >> (DelegatingHttpsURLConnection.java:218) >> com.android.okhttp.internal.http.HttpsURLConnectionImpl.getOutputStream >> (HttpsURLConnectionImpl.java:25) >> bme.a (:com.google.android.gms.DynamiteModulesC:27) >> blt.a (:com.google.android.gms.DynamiteModulesC:40) >> blz.a (:com.google.android.gms.DynamiteModulesC:5055) >> blz.run (:com.google.android.gms.DynamiteModulesC:54) >> java.util.concurrent.ThreadPoolExecutor.runWorker >> (ThreadPoolExecutor.java:1112) >> java.util.concurrent.ThreadPoolExecutor$Worker.run >> (ThreadPoolExecutor.java:587) >> java.lang.Thread.run (Thread.java:818) >> VM free: 69.49KB >> VM total: 128MB >> VM max: 128MB >> >> Thank you in advance >> >> >> >> >> -- > You received this message because you are subscribed to the Google Groups > "Android Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/android-developers. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/android-developers/fda35245-1543-4bf1-83ca- > 5dcf032b672d%40googlegroups.com > <https://groups.google.com/d/msgid/android-developers/fda35245-1543-4bf1-83ca-5dcf032b672d%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/android-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/android-developers/CABHzXARNKVV1iO5y-3bBTwcUPfvwP6w_WzqWhzY3q_2XQA5%3Dvg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

