public static Bitmap getBitmapFromURL(String src) {
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
private class AsyncImageLoader extends AsyncTask<String, Void, Bitmap[]> {
Bitmap bitmap[];
protected void onPreExecute() {
pDialog.setMessage(getContext().getResources().getString(R.string.please_wait));
showDialog();
}
@Override
protected Bitmap[] doInBackground(String... params) {
hideDialog();
bitmap = new Bitmap[2];
bitmap[0] = getBitmapFromURL(params[0]);
bitmap[1] = getBitmapFromURL(params[1]);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap[] bm) {
imgCover.setImageBitmap(bm[1]);
bm[1].recycle();
imgProfile.setImageBitmap(bm[0]);
bm[0].recycle();
if (MainActivity.PROFILE_UID.equals(MainActivity.USER_UID))
FragmentDrawer.imgProfileNavDrawer.setImageBitmap(bm[0]); // Sol drawer' da çıkan yuvarlak resmi güncellemek için
}
}
01-10 21: 11: 14,621 7906-8194/project.com.holobech Е/AndroidRuntime: неустранимый: AsyncTask # 2 java.lang.RuntimeException: Произошла ошибка при выполнении doInBackground() на android.os.AsyncTask $ 3.done (AsyncTask.java:299) на java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:352) на java.util.concurrent .FutureTask.setException (FutureTask.java:219) на java.util.concurrent.FutureTask.run (FutureTask.java:239) на android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:230) на java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1080) на java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:573) на java.lang.Thread.run (Thread. Java: 856) Вызванный: java.lang.OutOfMemoryError на android.graphics.BitmapFactory.nativeDecodeStream (нативный метод) на android.graphics.BitmapFactory.decodeStream (BitmapFactory.java:528) на android.graphics.BitmapFactory. decodeStream (BitmapFactory.java:600) на project.com.holobech.activity.ProfileFragment.getBitmapFromURL (ProfileFragment.java:508) на project.com.holobech.activity.ProfileFragment $ AsyncImageLoader.doInBackground (ProfileFragment.java:529) на project.com.holobec h.activity.ProfileFragment $ AsyncImageLoader.doInBackground (ProfileFragment.java:516) на android.os.AsyncTask $ 2.call (AsyncTask.java:287) на java.util.concurrent.FutureTask.run (FutureTask.java:234) на android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:230) на java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1080) на java.util.concurrent.ThreadPoolExecutor $ Worker. бег (ThreadPoolExecutor.java:573) на java.lang.Thread.run (Thread.java:856)AsyncTask # 2 java.lang.RuntimeException
Он работает идеально подходит для Android 5.0 и более поздних версий. Но когда я пытаюсь с версией 4.2.2, эта ошибка возникает. Как я могу исправить эту проблему? Спасибо за консультацию
Похоже на ошибку в памяти этого логарифма, что может объяснить, почему вы получаете разные результаты на разных устройствах/API Android. – NameSpace
Я обрабатываю ошибку памяти, но первая ошибка все еще происходит –