[英]Unable to connect Wamp MySQL database to Android Studio
我嘗試了許多不同的IP地址以及使用127.0.0.0和我自己的計算機IP地址,但是當我運行程序並嘗試注冊它時,它與服務器聯系,然后突然停止,並說應用程序名稱已停止工作。 由於您在此問題上停留了三天,請您能幫我還是幫上忙。
我在wamp / www /文件夾中創建了一個名為bradvisor_login_api的文件夾,該文件夾包含三個文件,其中一個文件用於config.php文件,下面列出了該文件。 phpMyAdmin帳戶沒有密碼,僅具有root用戶名。
任何人都可以幫助我解決此問題,我已經將config.php文件和一些Java文件粘貼到了顯示連接的位置。
Config.PHP文件
<?php
/**
* Database config variables
*/
define("DB_HOST", "127.0.0.1");
define("DB_USER", "root");
define("DB_PASSWORD", "root");
define("DB_DATABASE", "bradvisor_login_api");
?>
Java連接文件
//URL of the PHP API
private static String loginURL = "http://192.168.0.8:80/bradvisor_login_api/";
private static String registerURL = "http://192.168.0.8:80/bradvisor_login_api/";
private static String forpassURL = "http://192.168.0.8:80/bradvisor_login_api/";
private static String chgpassURL = "http://192.168.0.8:80/bradvisor_login_api/";
httpd.conf文件
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 0.0.0.0:80
Listen [::0]:80
錯誤日志
07-02 20:02:42.163 2269-2526/com.brad.visor E/Buffer Error﹕ Error converting result java.lang.NullPointerException: lock == null
07-02 20:02:42.163 2269-2526/com.brad.visor E/JSON Parser﹕ Error parsing data org.json.JSONException: End of input at character 0 of
07-02 20:02:42.194 2269-2269/com.brad.visor E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.brad.visor, PID: 2269
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.json.JSONObject.getString(java.lang.String)' on a null object reference
at com.brad.visor.Register$ProcessRegister.onPostExecute(Register.java:232)
at com.brad.visor.Register$ProcessRegister.onPostExecute(Register.java:189)
at android.os.AsyncTask.finish(AsyncTask.java:636)
at android.os.AsyncTask.access$500(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Register.java文件:
private class ProcessRegister extends AsyncTask<String, String, JSONObject>
------------------------------------------------------------------------
{
/**
* Defining Process dialog
**/
private ProgressDialog pDialog;
String email,password,fname,lname,uname;
@Override
protected void onPreExecute() {
super.onPreExecute();
inputUsername = (EditText) findViewById(R.id.uname);
inputPassword = (EditText) findViewById(R.id.pword);
fname = inputFirstName.getText().toString();
lname = inputLastName.getText().toString();
email = inputEmail.getText().toString();
uname= inputUsername.getText().toString();
password = inputPassword.getText().toString();
pDialog = new ProgressDialog(Register.this);
pDialog.setTitle("Contacting Servers");
pDialog.setMessage("Registering ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected JSONObject doInBackground(String... args) {
UserFunctions userFunction = new UserFunctions();
JSONObject json = userFunction.registerUser(fname, lname, email, uname, password);
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
/**
* Checks for success message.
**/
try {
if (json.getString(KEY_SUCCESS) != null) {
------------------------------------------
registerErrorMsg.setText("");
String res = json.getString(KEY_SUCCESS);
String red = json.getString(KEY_ERROR);
if(Integer.parseInt(res) == 1){
pDialog.setTitle("Getting Data");
pDialog.setMessage("Loading Info");
registerErrorMsg.setText("Successfully Registered");
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
JSONObject json_user = json.getJSONObject("user");
/**
* Removes all the previous data in the SQlite database
**/
UserFunctions logout = new UserFunctions();
logout.logoutUser(getApplicationContext());
db.addUser(json_user.getString(KEY_FIRSTNAME),json_user.getString(KEY_LASTNAME),json_user.getString(KEY_EMAIL),json_user.getString(KEY_USERNAME),json_user.getString(KEY_UID),json_user.getString(KEY_CREATED_AT));
/**
* Stores registered data in SQlite Database
* Launch Registered screen
**/
Intent registered = new Intent(getApplicationContext(), Registered.class);
/**
* Close all views before launching Registered screen
**/
registered.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
pDialog.dismiss();
startActivity(registered);
finish();
}
else if (Integer.parseInt(red) ==2){
pDialog.dismiss();
registerErrorMsg.setText("User already exists");
}
else if (Integer.parseInt(red) ==3){
pDialog.dismiss();
registerErrorMsg.setText("Invalid Email id");
}
}
else{
pDialog.dismiss();
registerErrorMsg.setText("Error occured in registration");
}
} catch (JSONException e) {
e.printStackTrace();
}
}}
public void NetAsync(View view){
new NetCheck().execute();
}}
從錯誤日志中:“無法將java.lang.String類型的Value <br轉換為JSONObject”您要的頁面是什么,您可以將其內容發布到問題中。
據我從錯誤日志中得知,該輸入不可解析。 當您收到響應為HTML時似乎是這種情況(其中分行符是<br />指示器,但是在字符串上,它們可以是多個,例如\\ 0。似乎在解析時,內容是作為單個變量讀取,並且無法將整個響應緩沖在該變量中,然后,該失敗的對象變為null,然后對其進行操作(因此失敗,並得到記錄的錯誤)
在Android Studio中,您必須輸入10.0.2.2作為IP。 這是用於localhost連接的ip Android Studio。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.