Es wurde keine Aktivität für Intent {} gefunden
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 logcat
wird 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
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 onCreate
und dies unterscheidet sich von No Activity found to handle Intent { }
Error.
Dies zeigt an, dass Ihre constraintLayout
unten stehende Anweisung null ist und Sie nur aufrufen können, setBackgroundResource
wenn 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.layout
tatsächlich im activity_home.xml
Layout vorhanden ist
constraintLayout = (ConstraintLayout) findViewById(R.id.layout);
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.