2016-06-26 9 views
0

Ich benutze this tutorial, um eine Android-Login-Anwendung zu machen. Ich habe alle seine Schritte verfolgt und bin erfolgreich in der Lage, die Anwendung auf dem Emulator oder meinem Handy zu laden, aber wenn ich versuche, ein Konto zu erstellen, erhalte ich einen Fehler - ich folgte den Anweisungen, die das Testen des Systems, hier zu verweisen :Android Login nicht mit DB verbinden

  1. Testen der App

für einen Anfänger wird es immer schwierig sein, dieses Projekt zum ersten Mal ausgeführt wird. Aber keine Sorge, die folgenden Schritte helfen Ihnen beim Testen dieser App. (Die IP-Adresse sieht wie 192.168.0.100 aus)

Stellen Sie sicher, dass beide Geräte (das Gerät, auf dem das PHP-Projekt und das Android-Gerät ausgeführt werden) sich im selben WLAN-Netzwerk befinden.

Geben korrekte Benutzername, Passwort und Datenbankname von MySQL in Config.php

die Adresse URL ip Ersetzen von URL_LOGIN und URL_REGISTER in AppConfig.java mit Ihrer Maschine IP-Adresse. Sie können, indem Sie ipconfig in cmd die IP-Adresse erhalten

meine IPv4-Adresse 192.168.0.11 ist, So habe ich die Datei in den AppConfig wie folgt:

package android.loginfirstattempt.com.loginfirstattempt.app; 


public class AppConfig { 
    // Server user login url 
    public static String URL_LOGIN = "http://192.168.0.11/android_login_api/login.php"; 


    // Server user register url 
    public static String URL_REGISTER = "http://192.168.0.11/android_login_api/register.php"; 

} 

Ich bin mit Android-Studio gebaut Im Emulator befinden sich beide Geräte im selben Netzwerk.

Ich verwende Lampp und ich bin unter der Annahme immer standardmäßig der Benutzername und das Passwort lautet:

<?php 
define("DB_HOST", "localhost"); 
define("DB_USER", "root"); 
define("DB_PASSWORD", ""); 
define("DB_DATABASE", "android_api"); 
?> 

ich die lokalen Server gestartet und getestet, um sicherzustellen, dass sie durch das Laden auf eine Demo-Seite ausgeführt wurden .

Ich habe bereits die MySQL-Datenbank und -Tabelle erstellt, wie in seinem Beispiel gezeigt.

für die Server-Seite Meine Dateistruktur in this picture

gezeigt ist, aber wenn ich einen Benutzer versuchen, erstelle ich bekommen diesen Absturz:

                      beginning of crash 

06-26 19: 12: 13,205 2668- 2668/android.loginfirstattempt.com.loginfirstattempt E/AndroidRuntime: FATALE AUSNAHME: Haupt Prozess: android.loginfirstattempt.com.loginfirstattempt, PID: 2668 java.lang.NullPointerException: Versuch, mich virtuell aufzurufen thod 'void android.loginfirstattempt.com.loginfirstattempt.app.AppController.addToRequestQueue (com.android.volley.Request, java.lang.String)' für eine Nullobjekt-Referenz bei android.loginfirstattempt.com.loginfirstattempt.activity.RegisterActivity .registerUser (RegisterActivity.java:189) bei android.loginfirstattempt.com.loginfirstattempt.activity.RegisterActivity.access $ 300 (RegisterActivity.java:35) bei android.loginfirstattempt.com.loginfirstattempt.activity.RegisterActivity $ 1.onClick (RegisterActivity .java: 84) bei android.view.View.performClick (View.java:5198) bei android.view.View $ PerformClick.run (View.java:21147) bei android.os.Handler.handleCallback (Handler.java:739) bei android.os.Handler.dispatchMessage (Handler.java:95) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java:5417) bei java.lang.reflect.Method.invoke (Mutter Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller .run (ZygoteInit.java:726) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)

Ich kann keinen offensichtlichen Fehler finden und frage mich, ob jemand helfen könnte!

+0

Hier ein Bild der phpMyAdmin-Seite für die db und Tabelle http://i.stack.imgur.com/KJUgQ.png ist – gazzler

+0

Hier die ist Wenn du einen Blick werfen möchtest https://drive.google.com/file/d/0B4vL9wnJulKoVUt6bmNPNjJXUUk/view?usp=sharing – gazzler

+0

habe ich einen Link in meinen Kommentar hinzugefügt, der eine Lösung für deinen letzten Fehler sein könnte. – Rockney

Antwort

0

Sie haben den AppController nicht zum Anwendungs-Tag in der AndroidManifest.xml hinzugefügt, wie im Lernprogramm erläutert. Ihr AppController wird jetzt während der Initialisierung Ihrer App nicht aufgerufen und ist nicht initialisiert. Wenn Sie AppController.getInstance().addToRequestQueue(strReq, tag_string_req); innerhalb Ihrer registerUser Methode AppController.getInstance() aufrufen, gibt Null zurück. Dies verursacht Ihre NullpointerException. Fügen Sie dem Manifest den AppController hinzu, und Ihr Code sollte funktionieren.

Ihre Anwendung Tag soll wie folgt aussehen:

<application 
    android:name="com.loginfirstattempt.app.AppController" 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
+0

Hallo, danke, dass es behoben - aber wenn ich versuche, registrieren jetzt bekomme ich diesen Fehler http://pastebin.com/9zZnvQ4F – gazzler

+0

Ich habe in der Internet-Erlaubnis hinzugefügt, aber immer noch einen Fehler http://pastebin.com/Y4qqUXzY .. Ich verstehe nicht, warum es nicht gefunden werden kann - es ist im richtigen Verzeichnis, das Sie aus dem Screenshot in der Frage sehen können – gazzler

+0

Sie können auf Ihren Host auf mehrere Arten beziehen. Sie könnten versuchen, 127.0.0.1 oder localhost anstelle von 192.168.0.11 zu verwenden. – Rockney