【问题标题】:Android Fail http Request ... where is my error?Android Fail http Request ...我的错误在哪里?
【发布时间】:2014-12-20 15:35:36
【问题描述】:

不知道我的错误在哪里

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import java.io.InputStreamReader;
import org.apache.http.message.BasicNameValuePair;



public class MainActivity extends Activity {
    EditText email;
    EditText passsword;
    Button   btn_send;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_send = (Button)findViewById(R.id.send_session);
        btn_send.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                    Send();
            }
        });

    }

    public void Send(){
        String text ="";

        try {
            email = (EditText)findViewById(R.id.email);
            passsword = (EditText)findViewById(R.id.password);

            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://172.16.1.196:3000/clients/login.json");

            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("email",email.getText().toString()));
            params.add(new BasicNameValuePair("password",passsword.getText().toString()));

            httppost.setEntity(new UrlEncodedFormEntity(params));

            Log.v("URL" , httppost.toString());

            HttpResponse resp = httpclient.execute(httppost);

            HttpEntity ent= resp.getEntity();

            text = EntityUtils.toString(ent);

        }
        catch (Exception e) {
            Log.v("mesage" , e.getMessage().toString());
        }


        email.setText(text);
    }




    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

还有我的活动

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
    android:background="#283439">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="50dip"
        android:inputType="textEmailAddress"
        android:ems="10"
        android:id="@+id/email"
        android:layout_marginTop="132dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:textColor="#00c189"
        android:textAlignment="center"
        android:clickable="false"
        android:background="@drawable/customs_borders"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="50dip"
        android:inputType="textPassword"
        android:ems="10"
        android:id="@+id/password"
        android:textAlignment="center"
        android:textColor="#00c189"
        android:clickable="false"
        android:background="@drawable/customs_borders"
        android:layout_centerVertical="true"
        android:layout_alignLeft="@+id/email"
        android:layout_alignStart="@+id/email" />

    <Button
        android:layout_width="218dip"
        android:layout_height="50dip"
        android:text="Login"
        android:id="@+id/send_session"
        android:textColor="#0cc189"
        android:background="#282934"
        android:layout_marginTop="50dp"
        android:layout_below="@+id/password"
        android:layout_alignRight="@+id/password"
        android:layout_alignEnd="@+id/password" />

</RelativeLayout>

我的清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.xxxxx.xxxxxx" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.xxxxx.xxxxxx.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <uses-permission android:name="android.permission.INTERNET" />

</manifest

>

日志控制台的一部分

20:21.178 27635-27635/com.example.xxxx.xxxx W/dalvikvm: threadid=1: 线程退出未捕获异常 (group=0x40ffb930) 10-24 13:20:21.178 27635-27635/com.example.xxxx.xxxxxx E/AndroidRuntime:致命异常:主要 java.lang.NullPointerException 在 com.example.xxxx.xxxxx.MainActivity.Send(MainActivity.java:81) 在 com.example.xxxx.xxxxx.MainActivity$1.onClick(MainActivity.java:49) 在 android.view.View.performClick(View.java:4421) 在 android.view.View$PerformClick.run(View.java:18190) 在 android.os.Handler.handleCallback(Handler.java:725) 在 android.os.Handler.dispatchMessage(Handler.java:92) 在 android.os.Looper.loop(Looper.java:175) 在 android.app.ActivityThread.main(ActivityThread.java:5279) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:511) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 在 dalvik.system.NativeStart.main(Native Method)

请帮忙!

【问题讨论】:

  • 那么nullat com.example.xxxx.xxxxx.MainActivity.Send(MainActivity.java:81)是什么?
  • 注意:您将在解决问题后立即联系NetworkOnMainThreadException,因此请提前警告。
  • xxxx.xxxxx 是我的包名,由于公司名称私有,抱歉
  • @ianhanniballake AsyncTask 在 othe.class 并从 activity.class 调用?
  • 第81行是哪一行?

标签: java android eclipse apache import


【解决方案1】:

错误日志说:

com.example.xxxx.xxxxx.MainActivity.Send(MainActivity.java:81) 处的 java.lang.NullPointerException

这表明在您的 Send 方法中 MainActivity 的第 81 行有一些不应该为空的内容。

此外,一旦您解决了该问题,您将立即点击NetworkOnMainThreadException,因此请务必阅读该答案以使您的应用程序正常运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 2018-04-21
    • 2014-04-19
    • 2017-10-17
    • 1970-01-01
    • 2016-06-29
    相关资源
    最近更新 更多