Emulator UI ist nicht responding + Android Button Leiste wird nicht mehr angezeigt

Status
Dieses Thema wurde gelöst! Zur Lösung springen…
L

louisbgt

Neues Mitglied
0
Seit gestern wird mir bei meinem Emulator immer dies angezeigt wenn er startet:
1609255440192.png
Außerdem ist die Android Button Leiste verschwunden, also sprich da wo man zum Starbildschirm und zu den letzten Apps kommt.
Diese Probleme sind unabhängig von meinen Apps die ich darauf benutze. Hab es schon mit mehreren selbst programmierten Apps ausprobiert.
Bei "run" gibt es keinen Fehler.

Außerdem wird im Logat dieser Fehler wiederholt angezeigt:
Code:
2020-12-29 16:11:18.909 171-171/? E/SELinux: avc:  denied  { find } for pid=20369 uid=2000 name=car_service scontext=u:r:shell:s0 tcontext=u:object_r:default_android_service:s0 tclass=service_manager permissive=0
Ich weiß nicht ob das was damit zutun hat oder ein weitere Fehler ist.

Könnt Ihr mir bitte helfen?

Mit freundlichen Grüßen
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: hagex - Grund: Bild verkleinert. Gruß von hagex
Empfohlene Antwort(en)
Hallo habe es mal getestet alle drei varianten gehen.

Toast.makeText(appContext, "Hallo "+ myFamily.get(position), Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "Hallo "+ myFamily.get(position), Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this, "Hallo "+ myFamily.get(position), Toast.LENGTH_SHORT).show();

wenn dein Emulator nicht richtig läuft benutze dein Handy zum testen.

Oder Erstelle ein neues AVD mit einer niedrigerern Sdk Version.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: louisbgt
Alle Antworten (6)
Hallo etwas wenig was du uns hier gibst.

Wo bei was Stürstzt den deine App ab?

Die Fehlermeldung kommt nicht direkt von deiner App. Eher vom System.
Ich vermute mal das du Methoden benutzt die auf der im Emulator laufenden Android Version Deprecated sind.
 
Ok und welche details brauchst du jz noch um mir zu helfen?

Das ist meine activity
Code:
package com.udemy.listviewdemo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

import static java.util.Arrays.asList;

public class MainActivity extends AppCompatActivity {

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

        // ListView initialisiert
        ListView listView = findViewById(R.id.myListView);

        // ListView kann ich nun Werte zuweisen > z.B. ArrayList > ArrayAdapter
        // <beinhaltet Strings>
        final ArrayList<String> myFamily = new ArrayList<String>();
        final ArrayList<String> myFriends = new ArrayList<>(asList("Max","Moritz"));

        // nun: kann ich meiner Array-List myFamily Objekte des Typs String zuweisen
        myFamily.add("Stefan");
        myFamily.add("Jana");
        myFamily.add("Louis");
        myFamily.add("Maurice");
        myFamily.add("Oma");
        myFamily.add("Opa Heinz");
        myFamily.add("Opa Günter");
        myFamily.add("Oma Gertraud");
        myFamily.add("Frau Hase");

        // jz hab ich ArrayList > kann ich jz Adapter zuweisen
        // ArrayAdapter<vom Typ String>
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, myFamily);

        // jz haben wir ArrayList, ArrayAdapter >>> jz nur noch Verbindung
        // wir verknüpfen ArrayList mit ArrayAdapter, dann verknüpfen wir den ListView mit dem ArrayAdapter
        listView.setAdapter(arrayAdapter);


        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Log.i("Ausgewählte Person", myFamily.get(position));
                // wir brauchen einen Kontext; normalerweise this, aber hier wäre this der
                // AdapterView, deshalb: getApplicationContext() > den wollen wir immer > geht immer
                Toast.makeText(MainActivity.this, "Hallo "+ myFamily.get(position), Toast.LENGTH_SHORT).show();
            }
        });

    }
}

das ist mein xml
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"
    tools:context=".MainActivity">

    <ListView
        android:id="@+id/myListView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

und das ist mein designer:
1609261507138.png

und das kommt wenn ich auf "run" drücke:
1609261558862.png
und hier ist der run tab:
1609261608404.png
und das logcat:
1609261656229.png

und es funktioniert auch nicht der befehl: toast anzeigen (siehe acticity), aber der Eintrag ins log erscheint im run tab
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: hagex - Grund: Bilder verkleinert. Gruß von hagex
Hallo eigentlich ist das kein Fehler deiner App.

Deine liste wird ja angezeigt. Warum die Fehlermeldung kommt weis ich jetzt auch nicht.
Welche Android Version SDK hat dein Emulator? Und unter welcher SDK Version arbeitest du?


Dein Log wird wenn es angezeigt wird nicht im Run Tab sondern in der Logcat angezeigt.

Habe den Code geändert der Toast sollte angezeigt werden. Habe es nicht getestet.


Code:
package com.udemy.listviewdemo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

import static java.util.Arrays.asList;

public class MainActivity extends AppCompatActivity {
//++++++++++++++++++
    Context appContext; 
//++++++++++++++++++   

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

//++++++++++++++++++
        appContext = this;   
//++++++++++++++++++

        // ListView initialisiert
        ListView listView = findViewById(R.id.myListView);

        // ListView kann ich nun Werte zuweisen > z.B. ArrayList > ArrayAdapter
        // <beinhaltet Strings>
        final ArrayList<String> myFamily = new ArrayList<String>();
//+++++++++++++++++
        //final ArrayList<String> myFriends = new ArrayList<>(asList("Max","Moritz"));
       // wird nicht gebaucht und die zuweisung ist flasch.
//++++++++++++++++++
        // nun: kann ich meiner Array-List myFamily Objekte des Typs String zuweisen
        myFamily.add("Stefan");
        myFamily.add("Jana");
        myFamily.add("Louis");
        myFamily.add("Maurice");
        myFamily.add("Oma");
        myFamily.add("Opa Heinz");
        myFamily.add("Opa Günter");
        myFamily.add("Oma Gertraud");
        myFamily.add("Frau Hase");

        // jz hab ich ArrayList > kann ich jz Adapter zuweisen
        // ArrayAdapter<vom Typ String>
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, myFamily);

        // jz haben wir ArrayList, ArrayAdapter >>> jz nur noch Verbindung
        // wir verknüpfen ArrayList mit ArrayAdapter, dann verknüpfen wir den ListView mit dem ArrayAdapter
        listView.setAdapter(arrayAdapter);


        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Log.i("Ausgewählte Person", myFamily.get(position));
                // wir brauchen einen Kontext; normalerweise this, aber hier wäre this der
                // AdapterView, deshalb: getApplicationContext() > den wollen wir immer > geht immer
//++++++++++++++++++
                Toast.makeText(appContext, "Hallo "+ myFamily.get(position), Toast.LENGTH_SHORT).show();
//++++++++++++++++++
            }
        });

    }
}

PS. Das mit deinem "asList" ist auch falsch.
 
Zuletzt bearbeitet:
Hallo habe es mal getestet alle drei varianten gehen.

Toast.makeText(appContext, "Hallo "+ myFamily.get(position), Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "Hallo "+ myFamily.get(position), Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this, "Hallo "+ myFamily.get(position), Toast.LENGTH_SHORT).show();

wenn dein Emulator nicht richtig läuft benutze dein Handy zum testen.

Oder Erstelle ein neues AVD mit einer niedrigerern Sdk Version.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: louisbgt
Ja und was hast du jz an dem Code geändert? Der ist doch identisch
Beiträge automatisch zusammengeführt:

Und wieso wird der log.i eintrag nicht im logcat angezeigt, sondern bei Run
Beiträge automatisch zusammengeführt:

Und warum ist die leiste mit dem homebutton nicht mehr da?
Beiträge automatisch zusammengeführt:

Ok vielen Dank es lag eindeutig am Emulator ich habe ihn jz auf API29-x86 gesetzt und jz ist auch die leiste unten wieder da und der toast funktioniert ohne des Codes. Allerdings wird mir beim start des emulators jz immer das angezeigt:
1609337094201.png
ist aber nicht schlimm? oder? ist ja nur weil ich jz ne ältere version benutze
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: hagex - Grund: Bild verkleinert. Gruß von hagex
Ja und was hast du jz an dem Code geändert? Der ist doch identisch
nein ist er nicht.
aber dein Toast würde gehen.

Und wieso wird der log.i eintrag nicht im logcat angezeigt, sondern bei Run
ich sagte es wird im Logcat angezeigt. du behauptest es kommt im Run-Tab an. In deinen Bildern ist davon nichts zu sehen.
jogimuc schrieb:
Dein Log wird wenn es angezeigt wird nicht im Run Tab sondern in der Logcat angezeigt.


Du hattest geschrieben.
und es funktioniert auch nicht der befehl: toast anzeigen (siehe acticity), aber der Eintrag ins log erscheint im run tab
Und genau da erscheint er nicht. Wenn er beim Buttonklick kommt dann in logcat nicht bei Run. Aber in beiden Bildern ist da nichts.


Und warum ist die leiste mit dem homebutton nicht mehr da?
dein Emulator läuft nicht richtig habe ich dir auch schon gesagt. Teste mit Handy oder einen anderen Emulator mit SDK kleiner 30.
 
Zuletzt bearbeitet:
Status
Dieses Thema wurde gelöst! Zur Lösung springen…

Ähnliche Themen

S
Antworten
4
Aufrufe
1.013
Sempervivum
S
SaniMatthias
Antworten
19
Aufrufe
990
swa00
swa00
A
  • AnimaAngelo85
Antworten
1
Aufrufe
344
swa00
swa00
Zurück
Oben Unten