活动原因?(java.lang.nullPointerException)

活动原因?(java.lang.nullPointerException),java,android,nullpointerexception,Java,Android,Nullpointerexception,我想知道是否是源代码中的活动声明导致ImageView找不到R.id.productImgDisplay,并且该类只是支持类,而该图像位于productsListFragment类中 package com.example.mobile_e_commerce.dummy; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.HashMap; impor

我想知道是否是源代码中的活动声明导致ImageView找不到R.id.productImgDisplay,并且该类只是支持类,而该图像位于productsListFragment类中

package com.example.mobile_e_commerce.dummy;

import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;

import com.example.mobile_e_commerce.ProductsListFragment;
import com.example.mobile_e_commerce.R;

/**
 * Helper class for providing sample content for user interfaces created by
 * Android template wizards.
 * <p>
 * TODO: Replace all uses of this class before publishing your app.
 */
public class ProductInfo extends AsyncTask<Void,Void,Void> {

    /**
     * An array of sample (dummy) items.
     */
    private static final ResourceBundle rb = ResourceBundle.getBundle("com.example.mobile_e_commerce.webserviceurl");

    private final static String NAMESPACE = rb.getString("WSDLTargetNamespace");
    private  final static String SoapURL = rb.getString("SoapAddress");
    private final static String SOAP_ACTION = rb.getString("SoapAction");
    private final static String METHOD_NAME = rb.getString("OperationName");
    private final String SOAP_ACTION2 = rb.getString("SoapAction2");
    private final String METHOD_NAME2 = rb.getString("OperationName2");
    private final String SOAP_ACTION3 = rb.getString("SoapAction3");
    private final String METHOD_NAME3 = rb.getString("OperationName3");
    private final String SOAP_ACTION4 = rb.getString("SoapAction4");
    private final String METHOD_NAME4 = rb.getString("OperationName4");
    private final String SOAP_ACTION5 = rb.getString("SoapAction5");
    private final static String METHOD_NAME5 = rb.getString("OperationName5");
    private final static String SOAP_ACTION6 = rb.getString("SoapAction6");//image location
    private final static String METHOD_NAME6 = rb.getString("OperationName6");//image location
    private final static String SOAP_ACTION7 = rb.getString("SoapAction7");
    private final static String METHOD_NAME7 = rb.getString("OperationName7");
日志:

04-14 10:58:15.471: W/System.err(5939): java.lang.NullPointerException
04-14 10:58:15.471: W/System.err(5939):     at android.app.Activity.findViewById(Activity.java:1794)
04-14 10:58:15.471: W/System.err(5939):     at com.example.mobile_e_commerce.dummy.ProductInfo.ImageLoader(ProductInfo.java:224)
04-14 10:58:15.471: W/System.err(5939):     at com.example.mobile_e_commerce.dummy.ProductInfo.doInBackground(ProductInfo.java:119)
04-14 10:58:15.471: W/System.err(5939):     at com.example.mobile_e_commerce.dummy.ProductInfo.doInBackground(ProductInfo.java:1)
04-14 10:58:15.471: W/System.err(5939):     at android.os.AsyncTask$2.call(AsyncTask.java:264)
04-14 10:58:15.471: W/System.err(5939):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
04-14 10:58:15.471: W/System.err(5939):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
04-14 10:58:15.471: W/System.err(5939):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
04-14 10:58:15.471: W/System.err(5939):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
04-14 10:58:15.471: W/System.err(5939):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
04-14 10:58:15.471: W/System.err(5939):     at java.lang.Thread.run(Thread.java:856)
04-14 10:58:15.471: E/Apps Error(5939): java.lang.NullPointerException

Activity活动=新活动()本身是错误的。您可以将在activity中初始化的视图传递给asynctask的构造函数。实际上,我在ProductListFragment类中执行此方法,但从web服务获取的映像位于productInfo中,因此我可以知道如何在没有activity类的类中使用findviewbyid吗???即使您修复了NPE,您仍在从doInbackground更新视图。所以最终会再次崩溃,这意味着我应该从我的res文件夹中获取图像数据,而不是从web服务中获取图像数据???您可以从服务器获取图像,但需要在ui线程上更新ui
ImageLoader(imgData);
try {
    //get the name of the product
    Object response = null;

    while(n < i) {
        SoapObject request = new SoapObject(NAMESPACE,METHOD_NAME);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        request.addProperty("number", n);
        envelope.setOutputSoapObject(request);
        HttpTransportSE httpTransport = new HttpTransportSE(SoapURL);
        httpTransport.call(SOAP_ACTION, envelope);
        response = envelope.getResponse();

        //imageurl equal to byte type image data,will add to WS later

        valuePass[n] = response.toString();
        addItem(new ProductItem(Integer.toString(i), valuePass[n]));

        n++;
    }
} catch (Exception exception) {
    exception.printStackTrace();
    Log.e("Apps Error", exception.toString());
} catch (Exception exception) {
    exception.printStackTrace();
    Log.e("Apps Error", exception.toString());
}
return null;

}

public void setExecution(ProductsListFragment exec)//to initialize the variable using class
{
    this.execute();
}

public static Map<String, ProductItem> ITEM_MAP = new HashMap<String, ProductItem>();
/*static {
//  // Add 3 sample items.
    addItem(new ProductItem("1", "Item 1"));
    addItem(new ProductItem("2", "Item 2"));
    addItem(new ProductItem("3", "Item 3"));
}*/

private static void addItem(ProductItem item) {
    //Log.e("Item added second", item.toString());
    ITEMS.add(item);
    ITEM_MAP.put(item.id, item);
}

public Byte imageToByte()//generate byte type image
{
    File file = new File("C:\\Users\\SYNLAPUSR004\\workspace\\Mobile_E-Commerce\\res\\drawable-hdpi\\s3.jpg");
    Byte[] c = null;
    int i = 0;
    try {
        FileInputStream fis = new FileInputStream(file);

        while ((fis.read()) != -1) {
            c[i] = (byte) fis.read();
            i++;
            fis.close();
            return c[i];
        }
    } catch (Exception ee) {
    }
    return null;
}
    public void ImageLoader(String imageData)
    {
        Bitmap bm;
    //  byte[] bitmapdata = null;
        ImageView P_Image = (ImageView)activity.findViewById(R.id.productImgDisplay);
        // activity = ProductsListFragment;

        /*
            byte[] fileBytes = imageData.getBytes();
        // Log.e("Image Data", (imageData.getBytes()).toString());
        // Log.e("Image Location", imageLoc);
           File file = new File(Environment.getExternalStorageDirectory() + File.separator + "s3.jpg");
         //File file = new File(,"s3.jpg");
           Log.e("File Directory", Environment.getExternalStorageDirectory().toString());
         try
         { 
                         // file.createNewFile();
                          OutputStream targetFile=  
                          new FileOutputStream(
                              file);
                          targetFile.write(fileBytes);
                          targetFile.close();


         }
         catch (Exception e)
         {
                 e.printStackTrace();
         }*/
    //  bm = BitmapFactory.decodeResource(getResources(), id);
        bm = BitmapFactory.decodeByteArray(imageData.getBytes(), 0, imageData.getBytes().length);
        Log.e("Image Ori Data: ", bm.toString());
        P_Image.setImageBitmap(bm);
        P_Image.setVisibility(View.VISIBLE);



    }

    /**
     * A dummy item representing a piece of content.
     */
    public static class ProductItem {//Instantiation of variable
        public String id;
        public String content;

        public ProductItem(String id, String content) {
            this.id = id;
            this.content = content;
        }

        @Override
        public String toString() {
            return content;
        }
    }

}
04-14 10:58:15.471: W/System.err(5939): java.lang.NullPointerException
04-14 10:58:15.471: W/System.err(5939):     at android.app.Activity.findViewById(Activity.java:1794)
04-14 10:58:15.471: W/System.err(5939):     at com.example.mobile_e_commerce.dummy.ProductInfo.ImageLoader(ProductInfo.java:224)
04-14 10:58:15.471: W/System.err(5939):     at com.example.mobile_e_commerce.dummy.ProductInfo.doInBackground(ProductInfo.java:119)
04-14 10:58:15.471: W/System.err(5939):     at com.example.mobile_e_commerce.dummy.ProductInfo.doInBackground(ProductInfo.java:1)
04-14 10:58:15.471: W/System.err(5939):     at android.os.AsyncTask$2.call(AsyncTask.java:264)
04-14 10:58:15.471: W/System.err(5939):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
04-14 10:58:15.471: W/System.err(5939):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
04-14 10:58:15.471: W/System.err(5939):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
04-14 10:58:15.471: W/System.err(5939):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
04-14 10:58:15.471: W/System.err(5939):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
04-14 10:58:15.471: W/System.err(5939):     at java.lang.Thread.run(Thread.java:856)
04-14 10:58:15.471: E/Apps Error(5939): java.lang.NullPointerException