Der versuch einer Login/Register app zu erstellen.

  • Antworten:28
  • Bentwortet
TwoFingersMarketing
  • Forum-Beiträge: 27

15.01.2016, 13:35:16 via Website

Hallo
vorweg ermal die Info das ich eher ein noob auf dem Gebiet bin.
Seit einem Monat bin ich dran bei dem versuch eine app zu erstellen.
einige werden jetzt wahrscheinlich die Augen rollen was ich auch verstehen kann.

Die app die ich machen will ist vielleicht zum Anfang etwas wuchtig und brauch unbedingt eine Login Session.
welche ich jetzt versuche mit volley und JASON umzusetzen.
vom Server aus müsste eigentlich alles funktionieren.

nur Leider stoße ich jetzt beim ausführen der app die sich erstmal nur mit dem Login Register beschäftigt auf Fehler.
diese kann ich durch google und co leider nicht Identifizierenen.
Ich hoffe das hier wer vielleicht einen tip oder sogar eine Lösung hat.

Bearbeitet:
Gestartet bekomme ich sie.
wenn ich nix eingebe kommt die nachricht vom Server das nix eingetragen ist.
sobald ich aber etwas eintrage und auf login klicke stürzt sie wieder ab.
habe mal LoginActivity.class und den AppController.class und SQLiteHander.class mit hinzugefügt.
Vielen lieben dank

01-16 16:13:25.424 1577-1577/com.abc.smb.smb E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.abc.smb.smb, PID: 1577
java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at android.util.Log.e(Log.java:334)
at com.abc.smb.smb.LoginActivity$4.onErrorResponse(LoginActivity.java:128)
at com.android.volley.Request.deliverError(Request.java:524)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:101)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5593)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
LoginActivity:

public class LoginActivity extends Activity {

private EditText emailTF, passwordTF;
private Button loginBtn, gotoRegBtn;
private ProgressDialog pDialog;
private SessionManager session;
private SQLiteHandler db;

private static final String TAG = LoginActivity.class.getSimpleName();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    emailTF = (EditText) findViewById(R.id.emailSF);
    passwordTF = (EditText) findViewById(R.id.passwordSF);
    loginBtn = (Button) findViewById(R.id.signin_btn);
    gotoRegBtn = (Button) findViewById(R.id.notreg_btn);

    pDialog = new ProgressDialog(this);
    session = new SessionManager(getApplicationContext());
    db = new SQLiteHandler(getApplicationContext());

    if(session.isLoggedIn()){
        Intent i = new Intent(this, MainActivity.class);
        startActivity(i);
        finish();
    }

    gotoRegBtn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(LoginActivity.this, RegisterActivity.class);
            startActivity(i);
            finish();

        }
    });

    loginBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String email = emailTF.getText().toString();
            String password = passwordTF.getText().toString();

            if (!email.isEmpty() && !password.isEmpty()) {

<<75>> checkLogin(email, password);
} else {
Toast.makeText(LoginActivity.this, "Please enter details",
Toast.LENGTH_LONG).show();
}
}
});
}

public void checkLogin(final String email, final String password){
    String tag_req = "login_request";
    pDialog.setMessage("Logging In.....");
    showDialog();

    StringRequest strR = new StringRequest(
            Request.Method.POST, AppConfig.LOGIN_URL,
            new Response.Listener<String>() {
                @Override
            public void onResponse(String response){
                    hideDialog();

                    try{
                        JSONObject jsb = new JSONObject(response);
                        boolean error = jsb.getBoolean("error");
                        if(!error){
                            String uid = jsb.getString("uid");

                            JSONObject user = jsb.getJSONObject("user");
                            String name = user.getString("name");
                            String email = user.getString("email");
                            String created_at = user.getString("created_at");
                            db.addUser(name, email, uid, created_at);

                            session.setLogin(true);

                            Intent i = new Intent(LoginActivity.this, MainActivity.class);
                            startActivity(i);
                            finish();
                        }else{
                            String error_msg = jsb.getString("error_msg");
                            Toast.makeText(LoginActivity.this, error_msg, Toast.LENGTH_LONG).show();

                        }
                    }
                    catch (JSONException e){
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
            public void onErrorResponse(VolleyError error){
                    Log.e(TAG, error.getMessage());
                }
            }
    ){
        @Override
    public Map<String, String> getParams(){
            Map<String, String> p = new HashMap<String, String>();
            p.put("tag", "login");
            p.put("email", email);
            p.put("password", password);

            return p;
        }
    };

<<141>> AppController.getInstance().addToRequestQueue(strR, tag_req);
}

public void showDialog(){
    if(!pDialog.isShowing()){
        pDialog.show();
    }
}
public void hideDialog(){
    if(pDialog.isShowing()){
        pDialog.dismiss();
    }
}

}

AppControler:

public class AppController extends Application {

public static final String TAG = AppController.class.getSimpleName();

private RequestQueue myRequest;

private static AppController mInstance;

@Override
public void onCreate(){
    super.onCreate();
    mInstance = this;
}

public static synchronized AppController getInstance(){
    return mInstance;
}

public RequestQueue getRequestQueue(){
    if (myRequest == null){
        myRequest = Volley.newRequestQueue(getApplicationContext());
    }

    return myRequest;
}

public <T> void addToRequestQueue(Request<T> req, String tag){
    req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
    getRequestQueue().add(req);
}

public <T> void addToRequestQueue(Request<T> req){
    req.setTag(TAG);
    getRequestQueue().add(req);
}

public void cancelPendingRequests(Object tag){
    if(myRequest != null){
        myRequest.cancelAll(tag);
    }
}

}

SQLiteHandler:

public class SQLiteHandler extends SQLiteOpenHelper {

public static final String TAG = SQLiteHandler.class.getSimpleName();

private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "login_db";
private static final String TABLE_NAME = "users";

private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_EMAIL = "email";
private static final String KEY_UID = "uid";
private static final String KEY_CREATED_AT = "created_at";

public SQLiteHandler (Context context){
    super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override
public void onCreate(SQLiteDatabase db){
    String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("
            +KEY_ID + " INTEGER PRIMARY KEY, " + KEY_NAME + " TEXT,"
            +KEY_EMAIL + " TEXT UNIQUE," + KEY_UID + " TEXT,"
            +KEY_CREATED_AT + " TEXT" + ")";
    db.execSQL(CREATE_TABLE);

    Log.d(TAG, "Database table created");

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);

    onCreate(db);

}

public void addUser(String name, String email, String uid, String created_at){
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_NAME, name);
    values.put(KEY_EMAIL, email);
    values.put(KEY_UID, uid);
    values.put(KEY_CREATED_AT, created_at);

    long id = db.insert(TABLE_NAME, null, values);
    db.close();

    Log.d(TAG, "New user was added to sqlite " + id);
}

public HashMap<String, String> getUserDetails() {
    HashMap<String, String> temp = new HashMap<String, String>();
    String selectQuery = "SELECT * FROM "+ TABLE_NAME;

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    cursor.moveToFirst();
    if(cursor.getCount() > 0){
        temp.put("name", cursor.getString(1));
        temp.put("email", cursor.getString(2));
        temp.put("uid", cursor.getString(3));
        temp.put("created_at", cursor.getString(4));
    }

    cursor.close();
    db.close();

    Log.d(TAG,  "Fetching user info from sqlite");

    return temp;
}

public int getRowCount(){
    String countQuery = "SELECT * FROM "+ TABLE_NAME;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor c = db.rawQuery(countQuery, null);
    int rowcount = c.getCount();
    db.close();
    c.close();

    return rowcount;
}

public void deleteUser(){
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(TABLE_NAME, null, null);
    db.close();

    Log.d(TAG,  "user has been deleted from sqlite");
}

}

— geändert am 16.01.2016, 16:14:59

Antworten
Henrik Martens
  • Forum-Beiträge: 607

15.01.2016, 13:49:53 via Website

Es wäre hilfreich, wenn du mal deinen Code postest.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.01.2016, 14:00:03 via App

Was steht fenn in der LoginActivity Zeile 59?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

15.01.2016, 14:45:29 via Website

danke Pascal P.
probiere die ganze zeit rum und habe mittlerweile den Fehler LoginActivity Zeile 59 behoben
lag dann da an einem Schreibfehler.

habe aber immer noch einige Fehler und die Fehler Ausgabe bearbeitet.
vielleicht hat ja noch wer ein tip.

Henrik hatte überlegt ob ich die java class en poste nur war dann der Meinung das das etwas viel ist wenn ich die hier alle reinsetze.

habe mal 2 class dazugefügt.

— geändert am 15.01.2016, 14:55:21

Antworten
Henrik Martens
  • Forum-Beiträge: 607

15.01.2016, 14:47:43 via Website

Also wenn du hier deinen Code nicht postest, dann kann ich dir nicht helfen. Wenigsten den Code, in dem der Fehler auftaucht, und das was damit zu tun hat. Also die Functions aus denen Variablen übergeben werden zum Beispiel.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.01.2016, 14:50:44 via App

Code ist von nöten wir haben keine Glaskugel ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

15.01.2016, 15:08:38 via Website

LoginActivity.class
AppController.class
SQLiteHandler.class

habe ich oben in meiner anfrage mit hinzugefügt.
muss leider zur arbeit
kann deshalb morgen erst wieder dran weiter arbeiten.

vielen dank schon mal.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.01.2016, 15:12:27 via Website

Da wäre es gut, du würdest mal dein JsonObject get etc. debuggen.
Zudem sehe ich hier nicht welche Zeile der Fehler ist, da d das nicht markiert hast.

LG Pascal //It's not a bug, it's a feature. :) ;)

TwoFingersMarketing

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

16.01.2016, 13:18:22 via Website

Also ich habe mal die zwei stellen mit Zeilennummer markiert

<<75>> checkLogin(email, password);

<<141>> AppController.getInstance().addToRequestQueue(strR, tag_req);

JSON läuft wie folgt ab

public void checkLogin(final String email, final String password){
String tag_req = "login_request";
pDialog.setMessage("Logging In.....");
showDialog();

    StringRequest strR = new StringRequest(
            Request.Method.POST, AppConfig.LOGIN_URL,
            new Response.Listener<String>() {
                @Override
            public void onResponse(String response){
                    hideDialog();

                    try{
                        JSONObject jsb = new JSONObject(response);
                        boolean error = jsb.getBoolean("error");
                        if(!error){
                            String uid = jsb.getString("uid");

                            JSONObject user = jsb.getJSONObject("user");
                            String name = user.getString("name");
                            String email = user.getString("email");
                            String created_at = user.getString("created_at");
                            db.addUser(name, email, uid, created_at);

                            session.setLogin(true);

                            Intent i = new Intent(LoginActivity.this, MainActivity.class);
                            startActivity(i);
                            finish();
                        }else{
                            String error_msg = jsb.getString("error_msg");
                            Toast.makeText(LoginActivity.this, error_msg, Toast.LENGTH_LONG).show();

                        }
                    }
                    catch (JSONException e){
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
            public void onErrorResponse(VolleyError error){
                    Log.e(TAG, error.getMessage());
                }
            }
    ){

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

16.01.2016, 13:41:17 via Website

Also der Fehler tritt eindeutig hier uaf:
AppController.getInstance().addToRequestQueue(strR, tag_req);

Jetzt musst du überprüfen was da Null ist.

Ich tippe auf ide AppController Instanz, die zu mit getInstance zurücklieferst.

Die Prüfst du nämlich nicht auf NULL Werte,

LG Pascal //It's not a bug, it's a feature. :) ;)

TwoFingersMarketing

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

16.01.2016, 16:24:49 via Website

vielen dank für den tip
bin etwas weiter gekommen und komme jetzt an den Fehler

at com.abc.smb.smb.LoginActivity$4.onErrorResponse(LoginActivity.java:128)

            new Response.ErrorListener() {
                @Override
            public void onErrorResponse(VolleyError error){
                    Log.e(TAG, error.getMessage());
                }
            }
    ){

beim AppController rückgabe bin ich mir leider nicht ganz sicher.
ich vermute jetzt vielleicht das ich einen Fehler im php code habe:

config.php

..?php

define("DB_HOST", "mysql2.gear.host");
define("DB_USER", "*");
define("DB_DATABASE", "*");
define("DB_PASSWORD", "**");
?>

DBConnect.php

....?php

class DBConnect{

function__construct(){

}

function__destruct(){

}

public function connect(){
    require_once 'Config.php';

    $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die(mysql_error());

    mysql_select_db(DB_DATABASE) or die(mysql_error());

    return §con;

}

public function close(){
    mysql_close();
}

}

?>

DBFunktions.php
...?php

class DBFunctions{

private $db;

function__construct(){
    require_once 'DBConnect.php';

    $this->db = new DBConnect();
    $this->db->connect();
}

function__destruct(){

}

public function storeUser($name, $email, $password){
    $uuid = uniqid('', true);
    $hash = $this->hashSSHA($password);
    $encrypted_password = $hash["encrypted"];
    $salt = $hash["salt"];
    $result = mysql_query("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at)VALUES('$uuid', '$name', '$email', '$encrypted_password', '$salt', NOW())");

    if($result){
        $uid = mysql_insert_id();
        $result = mysql_query("SELECT * FROM users WHERE uid = $uid");

        return mysql_fetch_array($result);
    }else{
        return false;
    }
}

public function getUserByEmailAndPassword($email, $password){
    $result = mysql_query("SELECT * FROM users WHERE email = '$email'") or die(mysql_error());
    $no_of_rows = mysql_num_rows($result);
    if($no_of_rows > 0){
        $result = mysql_fetch_array($result);
        $salt = $result['salt'];
        $encrypted_password = $result['encrypted_password'];
        $hash = $this->checkhashSSHA($salt, $password);

        if($encrypted_password == $hash){
            return $result;
        }
        else{
            return false;
        }
    }
}

public function isUserExisted($email){
    $result = mysql_query("SELECT email from users WHERE email = '$email'");
    $no_of_rows = mysql_num_rows($result);
    if($no_of_rows > 0){
        return true;
    }else{
        return false;
    }
}

public function hashSSHA($password){
    $salt = sha1(rand());
    $salt = substr($salt, 0, 10);
    $encrypted = base64_encode(sha1($password . $salt, true). $salt);
    $hash = array("salt" => $salt, "encrypted" => $encrypted);

    return $hash;
}

public function checkhashSSHA($salt, $password){

    $hash = base64_encode(sha1($password . $salt, true). $salt);

    return $hash;
}

}
?>

index.php
....?php

if(isset($_POST['tag']) && $_POST['tag'] != ''){

$tag = $_POST['tag'];

require_once 'include/DBFunctions.php';
$db = new DBFunctions();

$response = array("tag" => $tag, "error" => FALSE);

if($tag == 'login'){

    $email = $_POST['email'];
    $password = $_POST['password'];

    $user = $db->getUserByEmailAndPassword($email, $password);
    if($user != false){
        $response["error"] = FALSE;
        $response["uid"] = $user["unique_id"];
        $response["user"]["name"] = $user["name"];
        $response["user"]["email"] = $user["email"];
        $response["user"]["created_at"] = $user["created_at"];
        $response["user"]["updated_at"] = $user["updated_at"];
        echo json_encode($response);
    }else{
        $response["error"] = TRUE;
        $response["error_msg"] = "Incorrect email or Password";
        echo json_encode($response);
    }
}
else if($tag == 'register'){
    $name = $_POST['name'];
    $email = $_POST['email'];
    $password = $_POST['password'];

    if($db->isUserExisted($email)){
        $response["error"] = TRUE;
        $response["error_msg"] = "User already exist";
        echo json_encode($response);
    }else{
        $user = $db->storeUser($name, $email, $password);
        if($user){
        $response["error"] = FALSE;
        $response["uid"] = $user["unique_id"];
        $response["user"]["name"] = $user["name"];
        $response["user"]["email"] = $user["email"];
        $response["user"]["created_at"] = $user["created_at"];
        $response["user"]["updated_at"] = $user["updated_at"];
        echo json_encode($response);
        }
        else{
        $response["error"] = TRUE;
        $response["error_msg"] = "Error occured in Registration";
        echo json_encode($response);
        }
    }
}else{
        $response["error"] = TRUE;
        $response["error_msg"] = "Unknown 'tag' value. It should be either Login or register";
        echo json_encode($response);
}

}else{
$response["error"] = TRUE;
$response["error_msg"] = "Required parameter 'tag' is missing";

echo json_encode($response);

}

?>

muss jetzt leider wieder zur arbeit

Vielen dank schon mal

— geändert am 16.01.2016, 16:55:56

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

16.01.2016, 16:44:12 via Website

Ich hoffe ich gehe euch damit nicht auf den Nerv

— geändert am 16.01.2016, 16:58:42

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

16.01.2016, 17:05:27 via Website

Das nicht, aber leider hat du nur das Auftreten des Fehlers (Zeile) gepostet.
Das bringt mir nur was im Zusammenhang mit der Exception, als welche Art von Fehler es ist.
PHP Code an scih sieht in Ordnung aus.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

17.01.2016, 14:55:26 via Website

ja sorry ich habe es immer im ersten post von mir aktualisiert damit ich hier nicht alles zu spamme.
hier die komplette Fehlerausgabe.
auf Grund dessen bin ich von ausgegangen das es am phpcode liegt
werde es einfach noch mal doppelt durchgehen.
01-16 16:13:25.424 1577-1577/com.abc.smb.smb E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.abc.smb.smb, PID: 1577
java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at android.util.Log.e(Log.java:334)
at com.abc.smb.smb.LoginActivity$4.onErrorResponse(LoginActivity.java:128)
at com.android.volley.Request.deliverError(Request.java:524)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:101)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5593)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.01.2016, 15:05:14 via Website

Obs am PHP liegt, kannn ich dir nicht sagen,
aber der Fehler liegt daran, dass Volley wohl keine ErrorMessage schreibt:
Log.e(TAG, error.getMessage());
getMessage ist null oder das ErrorObjekt.

Irgendwie muss da noch was Falsch sein.
Ab besten du benutzt den Debugger + Breakpoints sonst kommst du dan icht weit.
Hast du der App internet Permission gegeben?

LG Pascal //It's not a bug, it's a feature. :) ;)

TwoFingersMarketing

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

17.01.2016, 15:52:40 via Website

ja ist vorhanden.
...manifest xmlns:android="**schemas.android.com/apk/res/android"
package="com.abc.smb.smb">

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

<application
    android:name=".AppController"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".LoginActivity"
        android:label="Login">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
    android:name=".RegisterActivity"
    android:label="Register">
</activity>
    <activity
        android:name=".MainActivity"
        android:label="MainSMB">
    </activity>
</application>

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.01.2016, 15:53:45 via App

Ohne es zu debuggen kann ich im moment nichts zadu sagen...

LG Pascal //It's not a bug, it's a feature. :) ;)

TwoFingersMarketing

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

17.01.2016, 16:55:48 via Website

"Ohne es zu debuggen" verstehe ich nicht genau.
dachte das ist was ich die ganze zeit mache und die Fehlerausgabe her bekomme.
vielleicht verstehe es auch falsch
bin erst 1 Monat in diesem Gebiet
sorry

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.01.2016, 17:00:01 via Website

Das Log anschauen ist nur ein Teil des Debuggens.
Du kannst auch "Breakpoints" erstellen, an welchen AndroidStudio Die App dann Anhält. Dann kanst du genau sehen Welche Variablen welchen Wert haben und wie das ganze sich verhält.
Hierm al was zum Informieren:
http://developer.android.com/tools/debugging/debugging-studio.html

LG Pascal //It's not a bug, it's a feature. :) ;)

TwoFingersMarketing

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

17.01.2016, 17:24:39 via Website

vielen dank

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

18.01.2016, 03:00:23 via Website

war auf jeden Fall hilfreich vielen dank.
bin jeden einzelnen punkt durchgegangen schritt für schritt.
so wie es aussieht kann er keine Verbindung zum Server herstellen.
jetzt muss ich halt schauen wo da der wurm drin ist..

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

18.01.2016, 13:44:24 via Website

also weiter komme ich nicht wirklich.
wie kann ich die Fehler Ausgabe kopieren vom debuggen?
bekomme hier jetzt auch Fehler in Method.class angezeigt womit ich überhaupt nix anfangen kann und noch in ein paar anderen .java datein mit denen ich nix anfangen kann.

image

— geändert am 18.01.2016, 13:49:33

Antworten
Henrik Martens
  • Forum-Beiträge: 607

18.01.2016, 14:35:15 via Website

Also das was du jetzt als letztes gepostet hast, bedeutet, dass er die entsprechenden Imports nicht machen kann.

Wenn du mit der Maus drüber fährst, müsste er dir anzeigen, warum... Ich tippe darauf, dass er die Libs nicht finden kann.

TwoFingersMarketing

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

18.01.2016, 14:42:49 via Website

nur sind die class datein von android studio und nicht von mir daher bin ich mir nicht sicher was ich dort machen soll

— geändert am 18.01.2016, 14:46:11

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

18.01.2016, 15:53:06 via Website

habe jetzt eine ältere Version von dem Projekt geladen und bekomme im debug java datein : parcel.java / socket.java / Method.java und BasicNetwork.java mit fehlern angezeigt wie zuvor.

sobald ich danach google bekomme ich nix hilfreiches
kein plan^^^
vielleicht hat ja wer einen tip

ich finde leider nix wie ein Protokoll oder ähnliches vom debug um es zu posten...

image

image
build.gradle sieht wie folgt aus
apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "com.abc.smb.smb"
    minSdkVersion 16
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'com.android.support:support-v4:23.1.1'
}

— geändert am 18.01.2016, 15:58:40

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

18.01.2016, 16:21:54 via Website

ok versuche gerade alles mögliche in grandle reinzuhauen und
compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile 'org.apache.httpcomponents:httpclient:4.5'
hat zum beispiel schon mal einiges behoben.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

18.01.2016, 17:09:28 via App

Du solltest mal eine andere lib zum laden nehmen. z.b Ion volley oder okHttp

LG Pascal //It's not a bug, it's a feature. :) ;)

TwoFingersMarketing

Antworten
TwoFingersMarketing
  • Forum-Beiträge: 27

19.01.2016, 02:14:02 via Website

OMG
da ich langsam den überblick verloren hatte habe ich mich entschlossen mit dem jetzigem Wissensstand neu zu beginnen.
und es läuft......
warum es jetzt funktioniert bin ich mir nicht ganz sicher aber
vielen dank für eure Hilfe ohne hätte ich es wahrscheinlich nicht so schnell hin bekommen.
so habe ich schon mal ein kleines licht am Horizont.
das schwerste wird mir noch bevorstehen.
werde jetzt einiges dran rumspielen und versuchen die app mit Inhalten zu füllen.
also werde mich bestimmt bald wieder melden und euch nerven g
also wirklich vielen dank.
;-)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.01.2016, 07:09:35 via App

Hallo TwoFingersMarketing!

Super, wenn deine Frage geklärt ist, setze doch bitte noch deinen Thread auf "Beantwortet"!

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten