Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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 尝试连接Internet时应用程序崩溃_Java_Android - Fatal编程技术网

Java 尝试连接Internet时应用程序崩溃

Java 尝试连接Internet时应用程序崩溃,java,android,Java,Android,我正在使用android studio,每当我尝试连接到internet时,它都会显示“不幸的是,‘应用程序名称’停止”的对话框,然后如果崩溃。 我还更新了清单文件以获得许可。请提供任何帮助,这可能会有所帮助。 代码如下: public class Login extends Activity { TextView msg; String user,pass; protected void onCreate(Bundle savedInstanceState){

我正在使用android studio,每当我尝试连接到internet时,它都会显示“不幸的是,‘应用程序名称’停止”的对话框,然后如果崩溃。 我还更新了清单文件以获得许可。请提供任何帮助,这可能会有所帮助。 代码如下:

public class Login extends Activity {
    TextView msg;
    String user,pass;
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        final EditText password;
        TextView regLabel;
        Button loginbt;
        final EditText username = (EditText) findViewById(R.id.username);
        password = (EditText) findViewById(R.id.password);
        regLabel = (TextView) findViewById(R.id.register_label);
        msg = (TextView) findViewById(R.id.alert);
        regLabel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent register_form = new Intent(Login.this,Register.class);
                startActivity(register_form);
            }
        });
        loginbt = (Button) findViewById(R.id.login);
        loginbt.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                user = username.getText().toString();
                pass = password.getText().toString();
                if(user.length()>0 && pass.length()>0) {
                    try {
                        new LoginProcess().execute("http://url.com");
                    } catch (Exception le) {
                        msg.setText("Error:" + le);
                    }
                }else{
                    msg.setText("Please Enter Username and Password!");
                }
            }
        });
    }

    public class LoginProcess extends AsyncTask<String, Void, Void> {
        private final HttpClient Client = new DefaultHttpClient();
        private String Content;
        private String Error = null;
        private ProgressDialog Dialog = new ProgressDialog(Login.this);

        protected void onPreExecute(){
            Dialog.setMessage("Checking Authentication..");
            Dialog.show();
        }
        // Call after onPreExecute method
        protected Void doInBackground(String... urls) {
            try {
                HttpGet httpget = new HttpGet(urls[0]);
                ResponseHandler<String> responseHandler = new BasicResponseHandler();
                Content = Client.execute(httpget, responseHandler);
            } catch (ClientProtocolException e) {
                Error = e.getMessage();
                cancel(true);
            } catch (IOException e) {
                Error = e.getMessage();
                cancel(true);
            }

            return null;
        }

        protected void onPostExecute(Void unused) {
            if (Error != null) {
                msg.setText("Error in Login: " + Error);
            } else {
                try {
                    JSONObject jsonObj = new JSONObject(Content);
                    String orgPass = jsonObj.getString("password");
                    if (orgPass.equals(pass)) {
                        Intent rp = new Intent(Login.this, Menu.class);
                        startActivity(rp);
                        finish();
                    } else {
                        msg.setText("Wrong Password");
                    }
                } catch (Exception je) {
                    msg.setText("Error:" + je);
                }
            }
        }

    }
}
公共类登录扩展活动{
文本视图消息;
字符串用户,通过;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
最终文本密码;
文本视图标签;
按钮登录;
最终EditText用户名=(EditText)findViewById(R.id.username);
密码=(EditText)findViewById(R.id.password);
regLabel=(TextView)findViewById(R.id.register\u标签);
msg=(TextView)findViewById(R.id.alert);
regLabel.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向登记表=新意向(Login.this,register.class);
startActivity(登记表);
}
});
loginbt=(按钮)findviewbyd(R.id.login);
loginbt.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
user=username.getText().toString();
pass=password.getText().toString();
if(user.length()>0&&pass.length()>0){
试一试{
新建登录进程()。执行(“http://url.com");
}捕获(例外情况){
msg.setText(“错误:+le”);
}
}否则{
msg.setText(“请输入用户名和密码!”);
}
}
});
}
公共类登录进程扩展异步任务{
私有最终HttpClient客户端=新的DefaultHttpClient();
私有字符串内容;
私有字符串错误=null;
private ProgressDialog=新建ProgressDialog(Login.this);
受保护的void onPreExecute(){
setMessage(“检查身份验证…”);
Dialog.show();
}
//在onPreExecute方法之后调用
受保护的Void doInBackground(字符串…URL){
试一试{
HttpGet HttpGet=新的HttpGet(URL[0]);
ResponseHandler ResponseHandler=新BasicResponseHandler();
Content=Client.execute(httpget、responseHandler);
}捕获(客户端协议例外e){
错误=e.getMessage();
取消(真);
}捕获(IOE异常){
错误=e.getMessage();
取消(真);
}
返回null;
}
受保护的void onPostExecute(未使用的void){
if(错误!=null){
msg.setText(“登录错误:+错误”);
}否则{
试一试{
JSONObject jsonObj=新的JSONObject(内容);
字符串orgPass=jsonObj.getString(“密码”);
if(orgPass.equals(pass)){
Intent rp=新的Intent(Login.this、Menu.class);
星触觉;
完成();
}否则{
msg.setText(“错误密码”);
}
}捕获(例外){
msg.setText(“错误:+je”);
}
}
}
}
}

请从logcatcheck发布堆栈跟踪
R.id.login
存在于
R.layout.login中。我们需要查看logcat。发生这种情况的原因:试图从主线程连接到internet,没有足够的权限。检查您的日志猫(如果您是从命令行运行的,您可以运行
adb logcat*:E
,或者从Android Studio的“日志猫”部分运行)@TomTsagk OP不是在使用异步任务吗<代码>新登录过程()。执行(“http://url.com");所以它不在UI线程上?!