Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我在安卓系统中会出现异常_Java_Android_Web Services_Rest_Method Call - Fatal编程技术网

Java 为什么我在安卓系统中会出现异常

Java 为什么我在安卓系统中会出现异常,java,android,web-services,rest,method-call,Java,Android,Web Services,Rest,Method Call,我已经编写了一个Android应用程序,它将调用RESTWeb服务。 首先,我尝试了一个Android应用程序,它的变量是固定的。我可以成功地调用Web服务 但是,当我在Android应用程序中集成GUI并在变量中赋值时,在运行时我得到以下异常: java.lang.reflect.InvocationTargetException java.lang.NullPointerException 为什么我会得到例外 我的程序代码是: public class testing extends Ac

我已经编写了一个Android应用程序,它将调用RESTWeb服务。 首先,我尝试了一个Android应用程序,它的变量是固定的。我可以成功地调用Web服务

但是,当我在Android应用程序中集成GUI并在变量中赋值时,在运行时我得到以下异常:

java.lang.reflect.InvocationTargetException
java.lang.NullPointerException
为什么我会得到例外

我的程序代码是:

public class testing extends Activity {

private EditText txturl,foldername,metadata,Username,Password;

private TextView textview;

private Button btnok,btncancel;

private String url,foldname,Metadata;

private String username,password;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);        


    btnok = (Button)findViewById(R.id.btncrtfold);

    btncancel=(Button)findViewById(R.id.btnreset);


            btnok.setOnClickListener(new View.OnClickListener() {
        public void onClick(View arg0) {
              txturl=(EditText)findViewById(R.id.txturl);

            Username=(EditText)findViewById(R.id.txtloginname);

            Password=(EditText)findViewById(R.id.txtpassword);

            foldername = (EditText)findViewById(R.id.txtfoldername);

            metadata=(EditText)findViewById(R.id.txtmetadata);

        foldname=foldername.getText().toString();

        Metadata=metadata.getText().toString();

        username=Username.getText().toString();

        url=txturl.getText().toString();

        password=Password.getText().toString();


            //HttpRequestInterceptor preemptiveAuth=login();
            String result=doprocess(url,username,password,Metadata,foldname);
            textview.setText(result);
     }});
} 

       public String doprocess(String url,String username,String password,String metadata,String fold){
            HttpResponse response=null;
        String content=null;

        //public static void login() {
              HttpRequestInterceptor preemptiveAuth = new HttpRequestInterceptor() {
                        @Override 
                        public void process(HttpRequest request,
                                HttpContext context) throws HttpException,
                                IOException {
                             AuthState authState = (AuthState) context.getAttribute(ClientContext.TARGET_AUTH_STATE);
                                CredentialsProvider credsProvider = (CredentialsProvider) context.getAttribute(
                                        ClientContext.CREDS_PROVIDER);
                                HttpHost targetHost = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST);

                                if (authState.getAuthScheme() == null) {
                                    AuthScope authScope = new AuthScope(targetHost.getHostName(), targetHost.getPort());
                                    Credentials creds = credsProvider.getCredentials(authScope);
                                    if (creds != null) {
                                        authState.setAuthScheme(new BasicScheme());
                                        authState.setCredentials(creds);
                                    }
                             }
                        }    
                    };



        DefaultHttpClient httpclient = new DefaultHttpClient();
        url= url+"/"+username+"/"+foldername;
        HttpPut put=new HttpPut(url);
        try{
        httpclient.getCredentialsProvider().setCredentials(
                new AuthScope(null, -1),
                new UsernamePasswordCredentials(username, password));
        httpclient.addRequestInterceptor(preemptiveAuth, 0);
        HttpEntity data=new StringEntity(metadata);
        put.setEntity(data);
        put.setHeader("Content-Type","application/vnd.org.snia.cdmi.container");
        response = httpclient.execute(put);
        HttpEntity resEntity=response.getEntity();
        if(resEntity!=null)
        content = (EntityUtils.toString(resEntity));
      }catch (Exception e) {
        Log.e("PUT Exception", "java.lang.NullPointerException");
      }
        String result=response.getStatusLine().toString()+"\n"+content;

        return result;
}

您好,我认为您的doProcess方法没有返回任何内容,因此它将抛出

Textview方法的setText上的NullPointerException


请确认。

如果您可以发布整个堆栈跟踪,那就太好了。在您的ip。。。实际上引发异常的代码,我怀疑是
doprocess
。嗨,levis501,我一直在编辑整个程序。我不知道。但是如果你发布了整个STACKTRACE,也许有人能找到答案。嗨,阿努普,我想是的。在我调试的程序中,结果为null并返回null。我不知道为什么你的HttpResponse还没有收到,你正在对结果进行操作。所以Http调用应该被阻塞。嗨,Anup Rojekar,我收到了响应字符串。但是我在设置字符串时出错。我可以这样设置textview中的字符串:“textview.setText(result);”是的,当然可以,请您发布您收到的确切错误消息。