Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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
android应用程序在从真实设备运行时不幸停止_Android_Mysql_Web Services_Xampp - Fatal编程技术网

android应用程序在从真实设备运行时不幸停止

android应用程序在从真实设备运行时不幸停止,android,mysql,web-services,xampp,Android,Mysql,Web Services,Xampp,大家好,我制作了我的第一个android应用程序,它有一个webservices,可以使用XAMPP连接到本地PC上的mysql数据库。我可以在android模拟器上完美地运行它,没有任何麻烦 但我需要从我的真实设备上运行,但我遇到了连接到数据库的问题 到目前为止,我已经更改了文件中的IP地址,该文件包含web服务的连接细节以及eclipse中的userfunction.java(这一个用于用户注册和登录函数) 在手机端,我的电脑使用局域网,我的手机使用connectify wireless连接

大家好,我制作了我的第一个android应用程序,它有一个webservices,可以使用XAMPP连接到本地PC上的mysql数据库。我可以在android模拟器上完美地运行它,没有任何麻烦 但我需要从我的真实设备上运行,但我遇到了连接到数据库的问题

到目前为止,我已经更改了文件中的IP地址,该文件包含web服务的连接细节以及eclipse中的userfunction.java(这一个用于用户注册和登录函数)

在手机端,我的电脑使用局域网,我的手机使用connectify wireless连接到同一连接

但当我在我的真实设备上点击登录按钮时,我在我的日志中得到了这个

05-18 12:19:40.600: E/SensorManager(13663): thread start
05-18 12:19:40.725: E/SpannableStringBuilder(13663): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
05-18 12:19:40.725: E/SpannableStringBuilder(13663): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
05-18 12:19:47.695: E/JSON Parser(13663): Error parsing data org.json.JSONException: End of input at character 0 of 
05-18 12:19:47.700: E/AndroidRuntime(13663): FATAL EXCEPTION: main
05-18 12:19:47.700: E/AndroidRuntime(13663): java.lang.NullPointerException
05-18 12:19:47.700: E/AndroidRuntime(13663):    at com.mohammed.watzIslam.LoginActivity$1.onClick(LoginActivity.java:62)
05-18 12:19:47.700: E/AndroidRuntime(13663):    at android.view.View.performClick(View.java:4211)
05-18 12:19:47.700: E/AndroidRuntime(13663):    at android.view.View$PerformClick.run(View.java:17267)
05-18 12:19:47.700: E/AndroidRuntime(13663):    at android.os.Handler.handleCallback(Handler.java:615)
05-18 12:19:47.700: E/AndroidRuntime(13663):    at android.os.Handler.dispatchMessage(Handler.java:92)
05-18 12:19:47.700: E/AndroidRuntime(13663):    at android.os.Looper.loop(Looper.java:137)
05-18 12:19:47.700: E/AndroidRuntime(13663):    at android.app.ActivityThread.main(ActivityThread.java:4898)
05-18 12:19:47.700: E/AndroidRuntime(13663):    at java.lang.reflect.Method.invokeNative(Native Method)
05-18 12:19:47.700: E/AndroidRuntime(13663):    at java.lang.reflect.Method.invoke(Method.java:511)
05-18 12:19:47.700: E/AndroidRuntime(13663):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
05-18 12:19:47.700: E/AndroidRuntime(13663):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
05-18 12:19:47.700: E/AndroidRuntime(13663):    at dalvik.system.NativeStart.main(Native Method)
这是userfunction.java,它保存用户注册表的位置地址。和登录Web服务器

\
public class UserFunctions {

private JSONParser jsonParser;

private static String loginURL = "http://xxxx:port#/android_login_api/";
private static String registerURL = "http://xxxx:port#/android_login_api/";

private static String login_tag = "login";
private static String register_tag = "register";

// constructor
public UserFunctions(){
jsonParser = new JSONParser();
}

/**
* function make Login Request
* @param email
* @param password
* */
public JSONObject loginUser(String email, String password){
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("tag", login_tag));
params.add(new BasicNameValuePair("email", email));
params.add(new BasicNameValuePair("password", password));
JSONObject json = jsonParser.getJSONFromUrl(loginURL, params);
// return json
// Log.e("JSON", json.toString());
return json;
}

/**
* function make reg. Request
* @param name
* @param email
* @param password
* */
public JSONObject registerUser(String name, String password, String email){
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("tag", register_tag));
params.add(new BasicNameValuePair("name", name));
params.add(new BasicNameValuePair("email", email));
params.add(new BasicNameValuePair("password", password));



// getting JSON Object
JSONObject json = jsonParser.getJSONFromUrl(registerURL, params);
// return json
return json;
}

/**
* Function get Login status
* */
public boolean isUserLoggedIn(Context context){
DatabaseHandler db = new DatabaseHandler(context);
int count = db.getRowCount();
if(count > 0){
// user logged in
return true;
}
return false;
}

/**
* Function to logout user
* Reset Database
* */
public boolean logoutUser(Context context){
DatabaseHandler db = new DatabaseHandler(context);
db.resetTables();
return true;
}

}
\
公共类用户函数{
私有JSONParser JSONParser;
专用静态字符串loginURL=”http://xxxx:port#/android_login_api/";
专用静态字符串注册表URL=”http://xxxx:port#/android_login_api/";
私有静态字符串login_tag=“login”;
专用静态字符串寄存器\u tag=“寄存器”;
//建造师
公共用户函数(){
jsonParser=新的jsonParser();
}
/**
*函数发出登录请求
*@param电子邮件
*@param密码
* */
公共JSONObject登录用户(字符串电子邮件、字符串密码){
//建筑参数
List params=new ArrayList();
添加(新的BasicNameValuePair(“标签”,登录标签));
参数添加(新的BasicNameValuePair(“电子邮件”),电子邮件);
添加(新的BasicNameValuePair(“密码”,password));
JSONObject json=jsonParser.getJSONFromUrl(loginURL,params);
//返回json
//Log.e(“JSON”,JSON.toString());
返回json;
}
/**
*函数生成注册请求
*@param name
*@param电子邮件
*@param密码
* */
公共JSONObject注册表服务器(字符串名称、字符串密码、字符串电子邮件){
//建筑参数
List params=new ArrayList();
参数添加(新的BasicNameValuePair(“标记”,寄存器_标记));
参数添加(新的BasicNameValuePair(“名称”),名称);
参数添加(新的BasicNameValuePair(“电子邮件”),电子邮件);
添加(新的BasicNameValuePair(“密码”,password));
//获取JSON对象
JSONObject json=jsonParser.getJSONFromUrl(registerURL,params);
//返回json
返回json;
}
/**
*函数获取登录状态
* */
公共布尔值isUserLoggedIn(上下文){
DatabaseHandler db=新的DatabaseHandler(上下文);
int count=db.getRowCount();
如果(计数>0){
//用户登录
返回true;
}
返回false;
}
/**
*用于注销用户的函数
*重置数据库
* */
公共布尔logoutUser(上下文){
DatabaseHandler db=新的DatabaseHandler(上下文);
db.resetTables();
返回true;
}
}
有人能指出错误或给我一个解决方案吗

谢谢添加以下软件包:

import android.app.ProgressDialog;
import android.os.AsyncTask;
将json声明为类成员字段:

私有JSONObject json

替换JSONObject json=jsonParser.getJSONFromUrl(loginURL,params); 为此:

new AsyncTask<Void, Void, Void>() {
    ProgressDialog progressDialog;
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        progressDialog = new ProgressDialog(SplashActivity.this);
        progressDialog.setCancelable(false);
        progressDialog.setMessage("Loading, please wait...");
        progressDialog.show();
    }

    @Override
    protected Void doInBackground(Void... pms) {
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("tag", login_tag));
        params.add(new BasicNameValuePair("email", email));
        params.add(new BasicNameValuePair("password", password));
        json = jsonParser.getJSONFromUrl(loginURL, params);
        return null;
    }
    protected void onPostExecute(Void result) {
        if(progressDialog.isShowing()) {
            progressDialog.dismiss();
        }
        if(json != null) {
            Log.e("JSON", json.toString());
        }
        else {
            Log.e("JSON", "JSON is NULL");
        }
    };
}.execute();
newasynctask(){
进行对话进行对话;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
progressDialog=新建progressDialog(SplashActivity.this);
progressDialog.setCancelable(假);
setMessage(“正在加载,请稍候…”);
progressDialog.show();
}
@凌驾
受保护的空位背景(空位…pms){
List params=new ArrayList();
添加(新的BasicNameValuePair(“标签”,登录标签));
参数添加(新的BasicNameValuePair(“电子邮件”),电子邮件);
添加(新的BasicNameValuePair(“密码”,password));
json=jsonParser.getJSONFromUrl(loginURL,params);
返回null;
}
受保护的void onPostExecute(void结果){
if(progressDialog.isShowing()){
progressDialog.disclose();
}
if(json!=null){
Log.e(“JSON”,JSON.toString());
}
否则{
Log.e(“JSON”,“JSON为空”);
}
};
}.execute();

解析数据org.json.JSONException时出错
。如果它在模拟器中工作,那么我敢打赌这是一个连接问题。我要做的第一件事是从另一台pc连接到web服务,看看是否能得到所有正确的响应。JSON错误是来自服务器的JSON响应的长度为0字节——同样,这一点使得连接与来自仿真器的连接不同。请发布连接到该服务的代码。@DarkCthulhu但是当我上次在模拟器上运行它时,它还可以……我只是想这可能是该服务的一个问题connection@user2396035这似乎很有可能。@PreetSangha在我的应用程序中,我已经注册了。在我的数据库中登录到一个网站“froum”的链接,那么我应该在这里发布其中的哪一个代码,但这给了我一个错误AsyncTask无法解析为一个类型和其他一些类型,但我想这是主要原因我编辑了我的答案以添加包。请在您的项目中包含上述包。另外,请将整个代码正确地从new复制到AsyncTask执行。现在,我发现此SplashActivity无法解析为类型,并且类型JSONParser中的getJSONFromUrl(String,List)方法不适用于参数(String,Void[])还有日志。我能做什么do@user2396035我又做了改变。再次复制粘贴整个内容,并将其替换为旧内容。按ctrl+shift+o自动导入所需的软件包。我仍然会收到相同的错误以及电子邮件和密码错误…但我注意到您在登录时做了此操作,您要求我将其放置在注册用户方法中,这会导致冲突,不是吗??