2016-04-09 21 views
-1

Kayıt ve giriş için çevrimiçi bir öğreticiyi deniyorum ve herşeyi uygularım. Ancak benim formumuzu doldurup ağa bağlandıktan sonra bir hatayı gösteren uygulamayı iptal ettikten sonra kayda basmaya çalıştığım zaman sorunumdur (Unfortunatly learn2crackLogin durdu)Android Uygulaması localhost'a bağlanın (Wempserver)

Uygulamanın adı learn2crachLogin'dir. Bir ben ince olursa sorununa cevap denedim

adı learn2crack_login_api altında wempserver www veritabanı dosyaları barındırılan ama sana izin yüzden lütfen ihtiyaç ekran görüntülerini emin değilim benim sorunum

çözmedi bana ..

burada tezahür

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

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/logo1" 
    android:label="@string/app_name"> 

    <activity 
     android:label="@string/app_name" 
     android:name=".Login" 
     android:launchMode="singleTop" 
     android:windowSoftInputMode="adjustPan"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
       </intent-filter> 
    </activity> 
    <activity android:label="@string/app_name" android:name=".Register"> 

    </activity> 

    <activity android:label="@string/app_name" android:name=".Registered"> 

    </activity> 

    <activity android:label="Learn2Crack USER PANEL" android:name=".Main"> 

    </activity> 

    <activity android:label="@string/app_name" 
    android:name=".PasswordReset"> 

    </activity> 
    <activity android:label="@string/app_name" android:name=".ChangePassword"> 

    </activity> 

</application> 



</manifest> 

Ve burada Localhost linki

içeren UserFunctions.JAVA olduğunu
package learn2crack.com.learn2cracklogin.library; 

import java.util.ArrayList; 
import java.util.List; 
import org.apache.http.NameValuePair;  
import org.apache.http.message.BasicNameValuePair; 
import org.json.JSONObject; 
import android.content.Context; 

public class UserFunctions { 

private JSONParser jsonParser; 

//URL of the PHP API 
private static String loginURL = "http://10.0.2.2/learn2crack_login_api/"; 
private static String registerURL = "http://10.0.2.2/learn2crack_login_api/"; 
private static String forpassURL = "http://10.0.2.2/learn2crack_login_api/"; 
private static String chgpassURL = "http://10.0.2.2/learn2crack_login_api/"; 

private static String login_tag = "login"; 
private static String register_tag = "register"; 
private static String forpass_tag = "forpass"; 
private static String chgpass_tag = "chgpass"; 

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

/** 
* Function to Login 
**/ 

public JSONObject loginUser(String email, String password){ 
    // Building Parameters 
    List params = new ArrayList(); 
    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; 
} 

/** 
* Function to change password 
**/ 

public JSONObject chgPass(String newpas, String email){ 
    List params = new ArrayList(); 
    params.add(new BasicNameValuePair("tag", chgpass_tag)); 

    params.add(new BasicNameValuePair("newpas", newpas)); 
    params.add(new BasicNameValuePair("email", email)); 
    JSONObject json = jsonParser.getJSONFromUrl(chgpassURL, params); 
    return json; 
} 

/** 
* Function to reset the password 
**/ 

public JSONObject forPass(String forgotpassword){ 
    List params = new ArrayList(); 
    params.add(new BasicNameValuePair("tag", forpass_tag)); 
    params.add(new BasicNameValuePair("forgotpassword", forgotpassword)); 
    JSONObject json = jsonParser.getJSONFromUrl(forpassURL, params); 
    return json; 
} 

/** 
* Function to Register 
**/ 
public JSONObject registerUser(String fname, String lname, String email,  String uname, String password){ 
    // Building Parameters 
    List params = new ArrayList(); 
    params.add(new BasicNameValuePair("tag", register_tag)); 
    params.add(new BasicNameValuePair("fname", fname)); 
    params.add(new BasicNameValuePair("lname", lname)); 
    params.add(new BasicNameValuePair("email", email)); 
    params.add(new BasicNameValuePair("uname", uname)); 
    params.add(new BasicNameValuePair("password", password)); 
    JSONObject json = jsonParser.getJSONFromUrl(registerURL,params); 
    return json; 
} 

/** 
* Function to logout user 
* Resets the temporary data stored in SQLite Database 
* */ 
public boolean logoutUser(Context context){ 
    DatabaseHandler db = new DatabaseHandler(context); 
    db.resetTables(); 
    return true; 
} 

} 

Bu benim register.java adresim paketidir learn2crack.com.learn2cracklogin;

04-09 14:42:05.992 3951-3971/learn2crack.com.learn2cracklogin E/Surface:   getSlotFromBufferLocked: unknown buffer: 0xabd2ef80 
04-09 14:42:07.289 3951-3971/learn2crack.com.learn2cracklogin W/EGL_emulation: eglSurfaceAttrib not implemented 
04-09 14:42:07.289 3951-3971/learn2crack.com.learn2cracklogin W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xabe8a180, error=EGL_SUCCESS 
04-09 14:42:09.207 3951-3971/learn2crack.com.learn2cracklogin E/Surface: getSlotFromBufferLocked: unknown buffer: 0xabd2eb90 
04-09 14:42:25.120 3951-3974/learn2crack.com.learn2cracklogin E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1 
                       Process: learn2crack.com.learn2cracklogin, PID: 3951 
                      java.lang.RuntimeException: An error occurred while executing doInBackground() 
                       at android.os.AsyncTask$3.done(AsyncTask.java:309) 
                       at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 
                       at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 
                       at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
                       at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
                       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                       at java.lang.Thread.run(Thread.java:818) 
                      Caused by: java.lang.SecurityException: ConnectivityService: Neither user 10064 nor current process has android.permission.ACCESS_NETWORK_STATE. 
                       at android.os.Parcel.readException(Parcel.java:1599) 
                       at android.os.Parcel.readException(Parcel.java:1552) 
                       at android.net.IConnectivityManager$Stub$Proxy.getActiveNetworkInfo(IConnectivityManager.java:974) 
                       at android.net.ConnectivityManager.getActiveNetworkInfo(ConnectivityManager.java:646) 
                       at learn2crack.com.learn2cracklogin.Register$NetCheck.doInBackground(Register.java:144) 
                       at learn2crack.com.learn2cracklogin.Register$NetCheck.doInBackground(Register.java:122) 
                       at android.os.AsyncTask$2.call(AsyncTask.java:295) 
                       at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                       at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)  
                       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)  
                       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)  
                       at java.lang.Thread.run(Thread.java:818)  
04-09 14:42:25.250 3951-3971/learn2crack.com.learn2cracklogin W/EGL_emulation: eglSurfaceAttrib not implemented 
04-09 14:42:25.250 3951-3971/learn2crack.com.learn2cracklogin W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xabe8ae20, error=EGL_SUCCESS 
04-09 14:42:27.586 3951-3951/learn2crack.com.learn2cracklogin I/Choreographer: Skipped 138 frames! The application may be doing too much work on its main thread. 
04-09 14:42:28.139 3951-3971/learn2crack.com.learn2cracklogin E/Surface: getSlotFromBufferLocked: unknown buffer: 0xabd30d40 
04-09 14:42:28.148 3951-3971/learn2crack.com.learn2cracklogin D/OpenGLRenderer: endAllStagingAnimators on 0xa33f5c00 (RippleDrawable) with handle 0xa35b1640 
04-09 14:42:28.224 3951-3971/learn2crack.com.learn2cracklogin E/Surface: getSlotFromBufferLocked: unknown buffer: 0xabd322b0 
04-09 14:42:28.989 3951-3951/learn2crack.com.learn2cracklogin E/Surface: queueBuffer: error queuing buffer to SurfaceTexture, -19 
04-09 14:42:28.989 3951-3951/learn2crack.com.learn2cracklogin E/Surface: queueBuffer (handle=0xabd30a30) failed (No such device) 
04-09 14:42:29.002 3951-3951/learn2crack.com.learn2cracklogin E/ViewRootImpl: Could not unlock surface 
                      java.lang.IllegalArgumentException 
                       at android.view.Surface.nativeUnlockCanvasAndPost(Native Method) 
                       at android.view.Surface.unlockSwCanvasAndPost(Surface.java:301) 
                       at android.view.Surface.unlockCanvasAndPost(Surface.java:282) 
                       at android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2739) 
                       at android.view.ViewRootImpl.draw(ViewRootImpl.java:2642) 
                       at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2434) 
                       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2067) 
                       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) 
                       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) 
                       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 
                       at android.view.Choreographer.doCallbacks(Choreographer.java:670) 
                       at android.view.Choreographer.doFrame(Choreographer.java:606) 
                       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 
                       at android.os.Handler.handleCallback(Handler.java:739) 
                       at android.os.Handler.dispatchMessage(Handler.java:95) 
                       at android.os.Looper.loop(Looper.java:148) 
                       at android.app.ActivityThread.main(ActivityThread.java:5417) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
04-09 14:42:29.008 3951-3951/learn2crack.com.learn2cracklogin I/Choreographer: Skipped 46 frames! The application may be doing too much work on its main thread. 
04-09 14:43:00.264 3951-3957/learn2crack.com.learn2cracklogin W/art: Suspending all threads took: 13.774ms 
04-09 14:44:06.189 3951-3957/learn2crack.com.learn2cracklogin W/art: Suspending all threads took: 16.496ms 
04-09 14:47:25.240 3951-3974/learn2crack.com.learn2cracklogin I/Process: Sending signal. PID: 3951 SIG: 9 

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.content.Context; 
import android.content.Intent; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

import learn2crack.com.learn2cracklogin.library.DatabaseHandler; 
import learn2crack.com.learn2cracklogin.library.UserFunctions; 

import org.json.JSONException; 
import org.json.JSONObject; 

import java.io.IOException; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URL; 

public class Register extends Activity { 

/** 
* JSON Response node names. 
**/ 

private static String KEY_SUCCESS = "success"; 
private static String KEY_UID = "uid"; 
private static String KEY_FIRSTNAME = "fname"; 
private static String KEY_LASTNAME = "lname"; 
private static String KEY_USERNAME = "uname"; 
private static String KEY_EMAIL = "email"; 
private static String KEY_CREATED_AT = "created_at"; 
private static String KEY_ERROR = "error"; 

/** 
* Defining layout items. 
**/ 

EditText inputFirstName; 
EditText inputLastName; 
EditText inputUsername; 
EditText inputEmail; 
EditText inputPassword; 
Button btnRegister; 
TextView registerErrorMsg; 

/** 
* Called when the activity is first created. 
*/ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.register); 

    /** 
    * Defining all layout items 
    **/ 
    inputFirstName = (EditText) findViewById(R.id.fname); 
    inputLastName = (EditText) findViewById(R.id.lname); 
    inputUsername = (EditText) findViewById(R.id.uname); 
    inputEmail = (EditText) findViewById(R.id.email); 
    inputPassword = (EditText) findViewById(R.id.pword); 
    btnRegister = (Button) findViewById(R.id.register); 
    registerErrorMsg = (TextView) findViewById(R.id.register_error); 

/** 
* Button which Switches back to the login screen on clicked 
**/ 

    Button login = (Button) findViewById(R.id.bktologin); 
    login.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent myIntent = new Intent(view.getContext(), Login.class); 
      startActivityForResult(myIntent, 0); 
      finish(); 
     } 

    }); 

    /** 
    * Register Button click event. 
    * A Toast is set to alert when the fields are empty. 
    * Another toast is set to alert Username must be 5 characters. 
    **/ 

    btnRegister.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      if ( (!inputUsername.getText().toString().equals("")) && (!inputPassword.getText().toString().equals("")) && (!inputFirstName.getText().toString().equals("")) && (!inputLastName.getText().toString().equals("")) && (!inputEmail.getText().toString().equals(""))) 
      { 
       if (inputUsername.getText().toString().length() > 4){ 
        NetAsync(view); 

       } 
       else 
       { 
        Toast.makeText(getApplicationContext(), 
          "Username should be minimum 5 characters", Toast.LENGTH_SHORT).show(); 
       } 
      } 
      else 
      { 
       Toast.makeText(getApplicationContext(), 
         "One or more fields are empty", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 
} 
/** 
* Async Task to check whether internet connection is working 
**/ 

private class NetCheck extends AsyncTask<String,Void,Boolean> 
{ 
    private ProgressDialog nDialog; 

    @Override 
    protected void onPreExecute(){ 
     super.onPreExecute(); 
     nDialog = new ProgressDialog(Register.this); 
     nDialog.setMessage("Loading.."); 
     nDialog.setTitle("Checking Network"); 
     nDialog.setIndeterminate(false); 
     nDialog.setCancelable(true); 
     nDialog.show(); 
    } 

    @Override 
    protected Boolean doInBackground(String... args){ 

/** 
* Gets current device state and checks for working internet connection by  trying Google. 
**/ 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
     if (netInfo != null && netInfo.isConnected()) { 
      try { 
       URL url = new URL("http://www.google.com"); 
       HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); 
       urlc.setConnectTimeout(3000); 
       urlc.connect(); 
       if (urlc.getResponseCode() == 200) { 
        return true; 
       } 
      } catch (MalformedURLException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
     return false; 

    } 
    @Override 
    protected void onPostExecute(Boolean th){ 

     if(th == true){ 
      nDialog.dismiss(); 
      new ProcessRegister().execute(); 
     } 
     else{ 
      nDialog.dismiss(); 
      registerErrorMsg.setText("Error in Network Connection"); 
     } 
    } 
} 

private class ProcessRegister extends AsyncTask<String,Void,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(); 
}} 

logcat beni

+0

Hangi hata veriyor? Logcat çıktısını gönderin – Pelocho

+0

@ Dr.Pelocho Bunun için üzgünüm, – NuhaAbd

+1

'Caused: java.lang.SecurityException: ConnectivityService: Ne kullanıcı 10064 ne de şu anki işlem android.permission.ACCESS_NETWORK_STATE' içermiyor Şimdi lütfen bu bölümün hangi kısmını açıklayın anlamadığınız hata mesajı. – csmckelvey

cevap

0

Kuralların birden fazla hata görebilirsiniz yardım edin lütfen.

  1. ile bu

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

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
  1. değiştirin List değiştirin List<NameValuePair>

  2. Ekle "?" etiketlerine tıpkı "login?", "register?", ..

+0

Çok teşekkür ederim! stüdyosu <İsimDeğişkeni>> – NuhaAbd

+0

Diğer değişiklikleri uyguladı ve şimdi sunucuya bağlandığını söylüyordur .. sonra iptal eder .. – NuhaAbd

+0

Bu durum logcat'taki bir eksikliktir: java.lang.NullPointerException: Sanal yöntemi 'java'yı çağırmayı denemek .lang.String org.json.JSONObject.getString (java.lang.String) 'null bir nesne referansı üzerinde – NuhaAbd