=0){ 输出写入(缓冲区,0,字节读取); } }最后{ output.close(); } }捕获(例外情况除外){ 例如printStackTrace(); } }捕获(格式错误){ e、 printStackTrace(); }捕获(IOE异常){ e、 printStackTrace(); } 返回null; } @凌驾 受保护的void onPostExecute(void结果){ super.onPostExecute(结果); dialog.dismise(); 字符串imagePath=Environment.getExternalStorageDirectory() .toString()+“/lociImages/“+”1“+”.jpg”; 位图位图=BitmapFactory.decodeFile(imagePath); AQURY aq=新的AQURY(MainActivity.this); aq.id(imageview).image(位图); //recciverImageSetImageBitmap(位图); } } },android,Android" /> =0){ 输出写入(缓冲区,0,字节读取); } }最后{ output.close(); } }捕获(例外情况除外){ 例如printStackTrace(); } }捕获(格式错误){ e、 printStackTrace(); }捕获(IOE异常){ e、 printStackTrace(); } 返回null; } @凌驾 受保护的void onPostExecute(void结果){ super.onPostExecute(结果); dialog.dismise(); 字符串imagePath=Environment.getExternalStorageDirectory() .toString()+“/lociImages/“+”1“+”.jpg”; 位图位图=BitmapFactory.decodeFile(imagePath); AQURY aq=新的AQURY(MainActivity.this); aq.id(imageview).image(位图); //recciverImageSetImageBitmap(位图); } } },android,Android" />

当我在android中下载图像并存储到Sd卡时出现空指针异常 公共类MainActivity扩展活动{ 线性布局线性化; 复选框; 图像视图图像视图; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageview=(imageview)findViewById(R.id.image); 新建myAsyncTask().execute(); } 类myAsyncTask扩展了AsyncTask{ 公共对话; myAsyncTask(){ dialog=新建ProgressDialog(MainActivity.this); setMessage(“正在加载图像…”); 对话框。可设置可取消(true); 对话框。setUndeterminate(true); } //AQuery aq=新的AQuery(上下文); //aq.id(recciverimage).image(位图); // ; @凌驾 受保护的void onPreExecute(){ super.onPreExecute(); dialog.show(); } 受保护的Void doInBackground(Void…arg0){ 试一试{ InputStream=null; URL=新URL(“http://api.lociiapp.com/TransientStorage/" +“1”+“.jpg”); URLConnection=url.openConnection(); 试一试{ //sdcard目录,例如“/sdcard”,可以直接使用, //或 //使用getExternalStorageDirectory()更安全地抽象 文件存储路径=环境 .getExternalStorageDirectory(); OutputStream输出=新文件OutputStream(新文件( storagePath,“1.jpg”); 试一试{ 字节[]缓冲区=新字节[1024]; int字节读取=0; 而((bytesRead=stream.read)(缓冲区,0, buffer.length))>=0){ 输出写入(缓冲区,0,字节读取); } }最后{ output.close(); } }捕获(例外情况除外){ 例如printStackTrace(); } }捕获(格式错误){ e、 printStackTrace(); }捕获(IOE异常){ e、 printStackTrace(); } 返回null; } @凌驾 受保护的void onPostExecute(void结果){ super.onPostExecute(结果); dialog.dismise(); 字符串imagePath=Environment.getExternalStorageDirectory() .toString()+“/lociImages/“+”1“+”.jpg”; 位图位图=BitmapFactory.decodeFile(imagePath); AQURY aq=新的AQURY(MainActivity.this); aq.id(imageview).image(位图); //recciverImageSetImageBitmap(位图); } } }

当我在android中下载图像并存储到Sd卡时出现空指针异常 公共类MainActivity扩展活动{ 线性布局线性化; 复选框; 图像视图图像视图; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageview=(imageview)findViewById(R.id.image); 新建myAsyncTask().execute(); } 类myAsyncTask扩展了AsyncTask{ 公共对话; myAsyncTask(){ dialog=新建ProgressDialog(MainActivity.this); setMessage(“正在加载图像…”); 对话框。可设置可取消(true); 对话框。setUndeterminate(true); } //AQuery aq=新的AQuery(上下文); //aq.id(recciverimage).image(位图); // ; @凌驾 受保护的void onPreExecute(){ super.onPreExecute(); dialog.show(); } 受保护的Void doInBackground(Void…arg0){ 试一试{ InputStream=null; URL=新URL(“http://api.lociiapp.com/TransientStorage/" +“1”+“.jpg”); URLConnection=url.openConnection(); 试一试{ //sdcard目录,例如“/sdcard”,可以直接使用, //或 //使用getExternalStorageDirectory()更安全地抽象 文件存储路径=环境 .getExternalStorageDirectory(); OutputStream输出=新文件OutputStream(新文件( storagePath,“1.jpg”); 试一试{ 字节[]缓冲区=新字节[1024]; int字节读取=0; 而((bytesRead=stream.read)(缓冲区,0, buffer.length))>=0){ 输出写入(缓冲区,0,字节读取); } }最后{ output.close(); } }捕获(例外情况除外){ 例如printStackTrace(); } }捕获(格式错误){ e、 printStackTrace(); }捕获(IOE异常){ e、 printStackTrace(); } 返回null; } @凌驾 受保护的void onPostExecute(void结果){ super.onPostExecute(结果); dialog.dismise(); 字符串imagePath=Environment.getExternalStorageDirectory() .toString()+“/lociImages/“+”1“+”.jpg”; 位图位图=BitmapFactory.decodeFile(imagePath); AQURY aq=新的AQURY(MainActivity.this); aq.id(imageview).image(位图); //recciverImageSetImageBitmap(位图); } } },android,Android,这是我从服务器下载图像并存储在sd卡中的代码,我们使用此URl在图像视图上打印图像。我正在将图像下载到服务器,但无法存储。请建议我哪里出错,并提供空指针异常。我想问题出在这里: public class MainActivity extends Activity { LinearLayout linearMain; CheckBox checkBox; ImageView imageview; @Override protected void onCr

这是我从服务器下载图像并存储在sd卡中的代码,我们使用此URl在图像视图上打印图像。我正在将图像下载到服务器,但无法存储。请建议我哪里出错,并提供空指针异常。

我想问题出在这里:

public class MainActivity extends Activity {
    LinearLayout linearMain;
    CheckBox checkBox;

    ImageView imageview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageview = (ImageView) findViewById(R.id.image);
        new myAsyncTask().execute();

    }

    class myAsyncTask extends AsyncTask<Void, Void, Void> {

        public ProgressDialog dialog;

        myAsyncTask() {
            dialog = new ProgressDialog(MainActivity.this);
            dialog.setMessage("Loading image...");
            dialog.setCancelable(true);
            dialog.setIndeterminate(true);
        }

        // AQuery aq = new AQuery(context);
        // aq.id(recciverimage).image(bitmap);
        // ;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            dialog.show();
        }

        protected Void doInBackground(Void... arg0) {
            try {

                InputStream stream = null;
                URL url = new URL("http://api.lociiapp.com/TransientStorage/"
                        + "1" + ".jpg");
                URLConnection connection = url.openConnection();
                try {
                    // The sdcard directory e.g. '/sdcard' can be used directly,
                    // or
                    // more safely abstracted with getExternalStorageDirectory()
                    File storagePath = Environment
                            .getExternalStorageDirectory();
                    OutputStream output = new FileOutputStream(new File(
                            storagePath, "1.jpg"));
                    try {
                        byte[] buffer = new byte[1024];
                        int bytesRead = 0;
                        while ((bytesRead = stream.read(buffer, 0,
                                buffer.length)) >= 0) {
                            output.write(buffer, 0, bytesRead);
                        }
                    } finally {
                        output.close();
                    }

                } catch (Exception ex) {
                    ex.printStackTrace();
                }

            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);

            dialog.dismiss();
            String imagePath = Environment.getExternalStorageDirectory()
                    .toString() + "/LociiImages/" + "1" + ".jpg";
            Bitmap bitmap = BitmapFactory.decodeFile(imagePath);

            AQuery aq = new AQuery(MainActivity.this);
            aq.id(imageview).image(bitmap);

            // recciverimage.setImageBitmap(bitmap);

        }

    }
}
其中,
storagePath
是:

OutputStream output = new FileOutputStream(new File(
                        storagePath, "1.jpg"));
然后,您尝试在以下位置访问下载的图像:

File storagePath = Environment
                        .getExternalStorageDirectory();
如果比较storagePath和要查找的路径,您将看到您正在子文件夹
lociImages
中搜索,但您没有将图片保存在那里

这就是为什么这一行:

String imagePath = Environment.getExternalStorageDirectory()
                .toString() + "/LociiImages/" + "1" + ".jpg";

抛出一个NPE。只是一个建议。希望有帮助。

当我调试时,您的日志在哪里?然后是catchblockExcute@MDpatel请检查我无法从下载图像到sd卡server@Departure没有办法。把你完整的日志放到问题的底部!没有错误,没有地方,我只想下载这张图片并存储在sd卡上
Bitmap bitmap = BitmapFactory.decodeFile(imagePath);