Java SkImageDecoder::工厂返回null,URL正确
我试图将URL中的图像放在ImageView中,但一直出现“SkImageDecoder::Factory returned null”错误 这是我的密码:Java SkImageDecoder::工厂返回null,URL正确,java,android,Java,Android,我试图将URL中的图像放在ImageView中,但一直出现“SkImageDecoder::Factory returned null”错误 这是我的密码: private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { ImageView bmImage; public DownloadImageTask(ImageView bmImage) { this.bmIm
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String myUrl= urls[0];
Bitmap myBmp= null;
try {
InputStream in = new URL(urldisplay).openStream();
myBmp= BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return myBmp;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
私有类下载ImageTask扩展异步任务{
图像视图bmImage;
公共下载ImageTask(ImageView bmImage){
this.bmImage=bmImage;
}
受保护位图doInBackground(字符串…URL){
字符串myUrl=URL[0];
位图myBmp=null;
试一试{
InputStream in=新URL(urldisplay).openStream();
myBmp=BitmapFactory.decodeStream(in);
}捕获(例外e){
Log.e(“Error”,e.getMessage());
e、 printStackTrace();
}
返回myBmp;
}
受保护的void onPostExecute(位图结果){
bmImage.setImageBitmap(结果);
}
}
编辑:获取第一张图像后应用程序崩溃时的logcat
公共类customAdapter扩展了ArrayAdapter{
私人最终语境;
私有最终ArrayList值;
静态类视窗夹{
私有文本视图文本视图名称;
私有文本视图文本视图类型;
私人影像视图;
}
公共customAdapter(上下文、ArrayList值){
super(上下文、R.layout.list_成员、值);
this.context=上下文;
这个值=值;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder mViewHolder=null;
if(convertView==null){
mViewHolder=新的视图持有者();
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.list_成员,父级,false);
mViewHolder.textViewName=(TextView)convertView.findViewById(R.id.name);
mViewHolder.textViewType=(TextView)convertView.findViewById(R.id.type);
mViewHolder.imageView=(imageView)convertView.findViewById(R.id.image);
setTag(mViewHolder);
}
否则{
mViewHolder=(ViewHolder)convertView.getTag();
}
字符串s=值。获取(位置);
StringTokenizer st=新的StringTokenizer,“*”;
String name=st.nextToken();
字符串url_photo=st.nextToken();
字符串类型=st.nextToken();
if(type.equals(“CHILD”)){
字符串计数\u dev=st.nextToken();
mViewHolder.textViewType.setText(计数/开发);
}
否则{
mviewolder.textViewType.setText(类型);
}
mviewolder.textViewName.setText(名称);
新下载的ImageTask(mViewHolder.imageView).execute(url\u photo);
返回视图;
}
私有类DownloadImageTask扩展了AsyncTask{
图像视图bmImage;
公共下载ImageTask(ImageView bmImage){
this.bmImage=bmImage;
}
受保护位图doInBackground(字符串…URL){
//TODO自动生成的方法存根
字符串urlStr=URL[0];
位图img=null;
HttpClient=new DefaultHttpClient();
HttpGet请求=新的HttpGet(urlStr);
HttpResponse响应;
试一试{
response=(HttpResponse)client.execute(request);
HttpEntity=response.getEntity();
BufferedHttpEntity bufferedEntity=新的BufferedHttpEntity(实体);
InputStream InputStream=bufferedEntity.getContent();
img=BitmapFactory.decodeStream(inputStream);
}捕获(客户端协议例外e){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回img;
}
受保护的void onPostExecute(位图结果){
bmImage.setImageBitmap(结果);
}
}
}
根据要求,这是此类的完整代码请尝试在后台方法中添加此代码:
protected Bitmap doInBackground(String... params) {
// TODO Auto-generated method stub
String urlStr = params[0];
Bitmap img = null;
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(urlStr);
HttpResponse response;
try {
response = (HttpResponse)client.execute(request);
HttpEntity entity = response.getEntity();
BufferedHttpEntity bufferedEntity = new BufferedHttpEntity(entity);
InputStream inputStream = bufferedEntity.getContent();
img = BitmapFactory.decodeStream(inputStream);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return img;
}
尝试在后台方法中添加此代码:
protected Bitmap doInBackground(String... params) {
// TODO Auto-generated method stub
String urlStr = params[0];
Bitmap img = null;
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(urlStr);
HttpResponse response;
try {
response = (HttpResponse)client.execute(request);
HttpEntity entity = response.getEntity();
BufferedHttpEntity bufferedEntity = new BufferedHttpEntity(entity);
InputStream inputStream = bufferedEntity.getContent();
img = BitmapFactory.decodeStream(inputStream);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return img;
}
无法解析HttpClient,无法解析getContent。我如何导入正确的库?为它添加导入然后,添加导入是必要的我添加了它,它加载了第一个映像,但它在没有打开下一个映像的情况下崩溃了,知道原因吗?检查logcat是否有错误,发布您正在使用的完整源代码。下一个元素抛出空值,无法解析HttpClient,无法解析getContent。如何导入正确的库?为它添加导入然后,添加导入是必要的。我添加了它,它加载了第一个映像,但它在没有打开下一个映像的情况下崩溃,知道原因吗?检查logcat是否有错误,发布您正在使用的完整源代码。下一个元素抛出一个空值,找到它。