Hi Leute,
ich habe seit gestern daran gesessen, Objekte irgendwie dauerhaft zu speichern und jetzt hatte es wohl geklappt. Ich habe nur irgendwas mit einem Xlint verstellt. Das Problem ist wenn ich auf den button Regristrieren der ersten Aktivity drücke hat es mich (bevor dieser Fehler auftauchte) auf die nächste activity weitergeleitet. Jetzt schließt die App plötzlich udn ich bekomme folgende Meldung:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: de.miguel.frozzenlist.frozzenbetaa, PID: 14692
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{de.miguel.frozzenlist.frozzenbetaa/de.miguel.frozzenlist.frozzenbetaa.Register}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3272)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3500)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2049)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference
at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:188)
at de.miguel.frozzenlist.frozzenbetaa.Register.<init>(Register.java:17)
at java.lang.Class.newInstance(Native Method)
at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:41)
at android.app.Instrumentation.newActivity(Instrumentation.java:1253)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3260)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3500)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2049)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
I/Process: Sending signal. PID: 14692 SIG: 9
Es muss irgendwas mit diesem init oder XLIND zu tun haben. Wie kann ich das den wieder bereinigen
Ich schicke trotzdem mal den code der betreffenden Klassen
<androidx.constraintlayout.widget.ConstraintLayout wird fehlerhaft ohne gescheite Lösung angezeigt warum auch immer
Hier war alles cool soweit.
Und ich denke nicht, dass es euch hilft aber zur Übersicht die Userklasse:
ich habe seit gestern daran gesessen, Objekte irgendwie dauerhaft zu speichern und jetzt hatte es wohl geklappt. Ich habe nur irgendwas mit einem Xlint verstellt. Das Problem ist wenn ich auf den button Regristrieren der ersten Aktivity drücke hat es mich (bevor dieser Fehler auftauchte) auf die nächste activity weitergeleitet. Jetzt schließt die App plötzlich udn ich bekomme folgende Meldung:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: de.miguel.frozzenlist.frozzenbetaa, PID: 14692
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{de.miguel.frozzenlist.frozzenbetaa/de.miguel.frozzenlist.frozzenbetaa.Register}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3272)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3500)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2049)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference
at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:188)
at de.miguel.frozzenlist.frozzenbetaa.Register.<init>(Register.java:17)
at java.lang.Class.newInstance(Native Method)
at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:41)
at android.app.Instrumentation.newActivity(Instrumentation.java:1253)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3260)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3500)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2049)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
I/Process: Sending signal. PID: 14692 SIG: 9
Es muss irgendwas mit diesem init oder XLIND zu tun haben. Wie kann ich das den wieder bereinigen
Ich schicke trotzdem mal den code der betreffenden Klassen
Code:
package de.miguel.frozzenlist.frozzenbetaa;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity implements View.OnClickListener {
Button btnRegister;
Button btnSignIn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnRegister= (Button)findViewById(R.id.bntRegister);
btnRegister.setOnClickListener(this);
btnSignIn= (Button)findViewById(R.id.bntSignIn);
btnRegister.setOnClickListener(this);
}
//register button
@Override
public void onClick(View view) {
Intent intent = new Intent(this,Register.class);
startActivity(intent);
}
}
Code:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/images"
android:visibility="visible"
tools:context=".MainActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout2"
android:layout_width="419dp"
android:layout_height="623dp"
android:layout_marginStart="9dp"
android:layout_marginLeft="9dp"
android:layout_marginTop="12dp"
android:layout_marginBottom="12dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0">
<Button
android:id="@+id/bntRegister"
android:layout_width="327dp"
android:layout_height="77dp"
android:layout_marginStart="34dp"
android:layout_marginLeft="34dp"
android:layout_marginEnd="40dp"
android:layout_marginRight="40dp"
android:layout_marginBottom="140dp"
android:text="@string/registrieren"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/bntSignIn"
android:layout_width="327dp"
android:layout_height="77dp"
android:layout_marginEnd="56dp"
android:layout_marginRight="56dp"
android:layout_marginBottom="16dp"
android:text="@string/anmelden"
app:layout_constraintBottom_toTopOf="@+id/bntRegister"
app:layout_constraintEnd_toEndOf="parent" />
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="365dp"
android:layout_height="181dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="100dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<EditText
android:id="@+id/editTextTextEmailAddress"
android:layout_width="368dp"
android:layout_height="82dp"
android:layout_marginTop="5dp"
android:autofillHints=""
android:background="@android:drawable/edit_text"
android:ems="10"
android:hint="@string/hint_mail"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/editTextTextPassword"
android:layout_width="369dp"
android:layout_height="86dp"
android:layout_marginTop="5dp"
android:autofillHints=""
android:background="@android:drawable/edit_text"
android:ems="10"
android:hint="@string/hint_passwort"
android:inputType="textPassword" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/logheadline"
android:layout_width="241dp"
android:layout_height="47dp"
android:text="@string/einloggen"
android:textColor="#0F100F"
android:textSize="36sp"
android:textStyle="bold"
tools:layout_editor_absoluteX="24dp"
tools:layout_editor_absoluteY="38dp" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout3"
android:layout_width="392dp"
android:layout_height="86dp"
tools:layout_editor_absoluteX="11dp"
tools:layout_editor_absoluteY="8dp">
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout wird fehlerhaft ohne gescheite Lösung angezeigt warum auch immer
Code:
package de.miguel.frozzenlist.frozzenbetaa;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.SharedPreferencesCompat;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Register extends AppCompatActivity implements View.OnClickListener {
SharedPreferences sharedPreferences= this.getSharedPreferences("User.txt",0);
SharedPreferences.Editor editor=sharedPreferences.edit();
Button regristryFinish;
int inputID;
User user =new User();
String userData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
regristryFinish=(Button)findViewById(R.id.btnRegistry);
regristryFinish.setOnClickListener(this);
}
public void Register(View view) {
//decliation
String input;
String inputE;
String inputP;
String inputControlP;
Counter counter = null;
//source
EditText inputName= (EditText)findViewById(R.id.bntInputName);
EditText inputEmail=(EditText)findViewById(R.id.bntInputEmail);
EditText setPasswort=(EditText)findViewById(R.id.bntsetPasswort);
EditText setControlPasswort=(EditText)findViewById(R.id.bntControlPasswort);
TextView inputAnswer=(TextView) findViewById(R.id.btnAnswer);
//set to User
input= (inputName.getText().toString());
inputE= (inputEmail.getText().toString());
inputP= (setPasswort.getText().toString());
inputControlP=(setControlPasswort.getText().toString());
user.setUserName(input);
user.setEmail(inputE);
if(input.equals(inputControlP)){
user.setPasswort(inputP);
}
else {
inputAnswer.setText("Passwörter stimmen nicht überein");
}
inputID=counter.getId();
user.setUserID(inputID);
userData= user.toString();
inputAnswer.setText("Regristration erfolgreich!");
}
@Override
public void onClick(View view) {
editor.putString("inputiD",userData);
editor.commit();
Intent intent= new Intent(this,Regiser.class);
}
}
Code:
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="372dp"
android:layout_height="691dp"
android:layout_marginEnd="20dp"
android:layout_marginRight="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.4">
<Button
android:id="@+id/btnRegistry"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="32dp"
android:text="@string/regristrieren"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/btnCanellation"
app:layout_constraintTop_toBottomOf="@+id/bntControlPasswort" />
<Button
android:id="@+id/btnCanellation"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginEnd="32dp"
android:layout_marginRight="32dp"
android:onClick="Register"
android:text="@string/abbruch"
app:layout_constraintBottom_toBottomOf="@+id/btnRegistry"
app:layout_constraintEnd_toStartOf="@+id/btnRegistry"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/btnRegistry" />
<EditText
android:id="@+id/bntInputName"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="27dp"
android:layout_marginLeft="27dp"
android:layout_marginTop="98dp"
android:layout_marginEnd="27dp"
android:layout_marginRight="27dp"
android:layout_marginBottom="10dp"
android:ems="10"
android:hint="@string/name"
android:importantForAutofill="no"
android:inputType="textPersonName"
app:layout_constraintBottom_toTopOf="@+id/bntInputEmail"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/bntInputEmail"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="27dp"
android:layout_marginLeft="27dp"
android:layout_marginEnd="27dp"
android:layout_marginRight="27dp"
android:layout_marginBottom="10dp"
android:autofillHints=""
android:ems="10"
android:hint="@string/hint_mail"
android:inputType="textEmailAddress"
app:layout_constraintBottom_toTopOf="@+id/bntsetPasswort"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/bntInputName" />
<EditText
android:id="@+id/bntsetPasswort"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="26dp"
android:layout_marginLeft="26dp"
android:layout_marginEnd="26dp"
android:layout_marginRight="26dp"
android:layout_marginBottom="9dp"
android:autofillHints=""
android:ems="10"
android:hint="@string/hint_passwort"
android:inputType="textPassword"
app:layout_constraintBottom_toTopOf="@+id/bntControlPasswort"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/bntInputEmail" />
<EditText
android:id="@+id/bntControlPasswort"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="26dp"
android:layout_marginLeft="26dp"
android:layout_marginEnd="26dp"
android:layout_marginRight="26dp"
android:layout_marginBottom="259dp"
android:ems="10"
android:hint="@string/hint_passwort"
android:importantForAutofill="no"
android:inputType="textPassword"
app:layout_constraintBottom_toTopOf="@+id/btnRegistry"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/bntsetPasswort" />
<TextView
android:id="@+id/btnAnswer"
android:layout_width="224dp"
android:layout_height="0dp"
android:layout_marginTop="384dp"
android:layout_marginBottom="179dp"
android:textSize="18sp"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@+id/btnRegistry"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Und ich denke nicht, dass es euch hilft aber zur Übersicht die Userklasse:
Code:
package de.miguel.frozzenlist.frozzenbetaa;
import java.io.File;
public class User {
private static int userID;
private String userName;
private String passwort;
private String email;
public User() {
this.userID = userID;
this.userName = userName;
this.passwort=passwort;
this.email=email;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPasswort() {
return passwort;
}
public void setPasswort(String passwort) {
this.passwort=passwort;
}
public String getEmail(){
return email;
}
public void setEmail(String inputEmail){
this.email=inputEmail;
}
public void changePasswort(String input)
{
this.passwort= input;
}
public int getUserID(){
return userID;
}
public void setUserID(int input){
this.userID=input;
}
@Override
public String toString() {
return "#" + userID + "#" + userName + "#" + passwort + "#" + email
+ "#";
}
}