2013-05-18 44 views
1

嗨我已經使我的第一個android應用程序,它有一個webservices連接到我的本地電腦使用XAMPP的mysql數據庫我可以完美地從Android模擬器運行它沒有麻煩 但我需要從我的真實設備運行,但我得到了連接到數據庫的問題Android應用程序不幸停止時,從真實設備運行

到目前爲止,我已更改包含Web服務的連接詳細信息的文件中的IP地址,以及userfunction.java eclipse(這一個用戶註冊和登錄功能)

在手機端,我的電腦使用LAN和我的手機連接到相同的連接使用connectify無線此無線

,但是當我登錄按鈕點擊從我的真實的設備我得到這個在我的logcat

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。和登錄webserives

\ 
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; 
} 

} 

可有人指出,對任何錯誤或建議我一個解決方案

感謝

+0

'分析數據org.json.JSONException時出錯。 <---修復 –

+0

如果它在模擬器中工作,那麼我敢打賭,這是一個連接問題。我要做的第一件事是從另一臺電腦連接到Web服務,看看我能否得到所有正確的答案。 JSON錯誤是來自服務器的JSON響應長度爲0字節 - 這又是一個點,因此連接性與仿真器不一樣。請發佈連接到服務的代碼。 –

+0

@DarkCthulhu但是當我上次在模擬器上運行它時,它是好的......我只是想這可能是連接問題 – user2396035

回答

0

添加這些軟件包:

import android.app.ProgressDialog; 
import android.os.AsyncTask; 

申報JSON作爲類成員場:

private 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(); 
+0

,但它給了我錯誤AsyncTask無法解析到類型和其他一些,但我想這是主要原因 – user2396035

+0

我編輯了我的答案來添加包。請在你的項目中包含上面的那些包。也可以從全新的代碼中正確地複製整個代碼以執行AsyncTask – Homam

+0

現在我得到了這個SplashActivity無法解析爲類型,並且JSONParser類型中的getJSONFromUrl(String,List )方法是不適用於參數(字符串,Void [])以及日誌.e我能做些什麼 – user2396035

相關問題