Es wurde keine Aktivität für Intent {} gefunden

Nov 28 2020

In meiner Wetter-App läuft der Begrüßungsbildschirm gut, aber wenn er angezeigt wird HomeActivity, wird er angezeigt, app has stopped wenn ich ihn auf meinem Gerät getestet habe

Auf dem logcatwird Folgendes angezeigt:

No Activity found to handle Intent {  }

In der Zwischenzeit habe ich die Absicht in meinem Begrüßungsbildschirm übergeben:

        int SPLASH_SCREEN = 5000;
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(MainActivity.this, HomeActivity.class);
                startActivity(intent);
                finish();
            }
        }, SPLASH_SCREEN);
    }
}

Mein HomeActivity-Code:

public class HomeActivity extends AppCompatActivity {
    ConstraintLayout constraintLayout;
    public static int count=0;
    int[] drawable =new int[]{R.drawable.burj_khalifa,R.drawable.central_bank_of_nigeria,R.drawable.eiffel_tower,R.drawable.hong_kong,R.drawable.statue_of_liberty};
    Timer _t;

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

        constraintLayout = (ConstraintLayout) findViewById(R.id.layout);
        constraintLayout.setBackgroundResource(R.drawable.burj_khalifa);
            _t = new Timer();
            _t.scheduleAtFixedRate(new TimerTask() {
                @Override
                        public void run() {
                    runOnUiThread(new Runnable() { // run on ui thread
                        @Override
                        public void run() {
                            if (count < drawable.length) {

                                constraintLayout.setBackgroundResource(drawable[count]);
                                count = (count + 1) % drawable.length;
                            }
                        }
                    });
            }
        }, 5000, 5000);
    }
}

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tex.lightweatherforecast">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".Activity.HomeActivity"
            android:label="@string/title_activity_home" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="preloaded_fonts"
            android:resource="@array/preloaded_fonts" />
    </application>

</manifest> 

activity_home.xml:

<?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/burj_khalifa"
    tools:context=".Activity.HomeActivity">


</androidx.constraintlayout.widget.ConstraintLayout>

Gibt es irgendetwas, um dies zu korrigieren?

Antworten

3 Zain Nov 28 2020 at 22:26

Wenn Sie das Gerät finish();aus Ihrem Handler entfernen, wird dies behoben

       new Handler().postDelayed(new Runnable() {
           @Override
           public void run() {
               Intent intent = new Intent(MainActivity.this, HomeActivity.class);
               startActivity(intent);
               finish();
           }
       }, SPLASH_SCREEN);

Wenn Sie den Begrüßungsbildschirm vom Stapel entfernen möchten, können Sie dies tun

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

Versuchen Sie, die virtuelle Methode 'void androidx.constraintlayout.widget.ConstraintLayout.setBackgroundResource (int)' für eine Nullobjektreferenz aufzurufen

Jetzt sind Sie in der HomeActivity onCreateund dies unterscheidet sich von No Activity found to handle Intent { }Error.

Dies zeigt an, dass Ihre constraintLayoutunten stehende Anweisung null ist und Sie nur aufrufen können, setBackgroundResourcewenn Sie sie mit einem Wert ungleich Null initialisieren

 constraintLayout.setBackgroundResource(R.drawable.burj_khalifa);

Wenn Sie es aus Ihrem Aktivitätslayout erhalten haben, müssen Sie als ersten Schritt zur Fehlerbehebung überprüfen, ob diese ID R.id.layouttatsächlich im activity_home.xmlLayout vorhanden ist

 constraintLayout = (ConstraintLayout) findViewById(R.id.layout);
Jamal Nov 28 2020 at 21:58

Versuchen Sie in Ihrem Manifest, nur .HomeActivity anstelle von .Activity.HomeActivity zu schreiben. Wenn weiterhin Fehler angezeigt werden, können Sie meiner Meinung nach kein 'R.id.layout' schreiben, nur weil 'layout' ein Schlüsselwort ist. Versuchen Sie daher, eine andere ID für Ihre Einschränkung zu definieren Layout.