2015-06-08 2 views
0

Я делаю приложение для андроид-студии, которое на одном из своих вкладок имеет rss-канал, а теперь с добавлением образа и растрового кода, а я пытаюсь поместить свое изображение в изображение, в мой адаптер всякий раз, когда я запускаю мой код он выходит из строя:Ошибка битового соединения

android.os.NetworkOnMainThreadException 
     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147) 
     at java.net.InetAddress.lookupHostByName(InetAddress.java:418) 
     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 
     at java.net.InetAddress.getAllByName(InetAddress.java:215) 
     at com.android.okhttp.HostResolver$1.getAllByName(HostResolver.java:29) 
     at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:232) 
     at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:124) 
     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:272) 
     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211) 
     at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:382) 
     at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106) 
     at com.example.pauly.myapplication.LAdapter.ImgBM(LAdapter.java:54) 
     at com.example.pauly.myapplication.LAdapter.getView(LAdapter.java:41) 
     at android.widget.AbsListView.obtainView(AbsListView.java:2347) 
     at android.widget.ListView.makeAndAddView(ListView.java:1864) 
     at android.widget.ListView.fillDown(ListView.java:698) 
     at android.widget.ListView.fillFromTop(ListView.java:759).. 

Частичное Ladapter.class:

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // Get the data item for this position 
     Info info = getItem(position); 
     // Check if an existing view is being reused, otherwise inflate the view 
     if (convertView == null) { 
      convertView = LayoutInflater.from(getContext()).inflate(R.layout.basic_list_item, parent, false); 
     } 
     // Lookup view for data population 
     TextView title = (TextView) convertView.findViewById(R.id.Tit); 
     ImageView image = (ImageView) convertView.findViewById(R.id.img); 
     //TextView description = (TextView) convertView.findViewById(R.id.Desc); 
     title.setText(info.Title); 
    #l.41 image.setImageBitmap(ImgBM(info.Image)); 
     //description.setText(info.Description); 


     // Return the completed view to render on screen 
     return convertView; 
    } 

    private Bitmap ImgBM(String url) { 
     Bitmap bm = null; 
     try { 
      URL aURL = new URL(url); 
      URLConnection conn = aURL.openConnection(); 
    #l.54  conn.connect(); 
      InputStream is = conn.getInputStream(); 
      BufferedInputStream bis = new BufferedInputStream(is); 
      bm = BitmapFactory.decodeStream(bis); 
      bis.close(); 
      is.close(); 
     } catch (IOException e) { 
      Log.e("Bitm", "Error getting bitmap", e); 
     } 
     return bm; 
    } 
} 
+0

Вы должны сделать операцию, связанную с netwrok, на Фоновые потоки, такие как AsyncTask – Meenal

+0

Возможный дубликат [android.os.NetworkOnMainThreadException] (http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception) – ben75

ответ

1

проблема есть. NetworkOnMainThreadException Это означает, что вы вызываете сеть в пользовательском интерфейсе. Попробуйте использовать AsynkTask для загрузки изображения.

Переместить этот ImgBM(url) способ AsynkTask.

Смежные вопросы