इरादे को संभालने के लिए कोई गतिविधि नहीं मिली {}
मेरे वेदर ऐप पर , स्प्लैश स्क्रीन अच्छी तरह से चलती है लेकिन जब यह अंदर जा रही होती है HomeActivity
, तो यह तब प्रदर्शित होती है app has stopped
जब मैंने इसे अपने डिवाइस पर टेस्ट किया
इस पर logcat
, यह प्रदर्शित होता है:
No Activity found to handle Intent { }
इस बीच मैं अपने छप स्क्रीन में इरादा पारित कर दिया:
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);
}
}
मेरा होमएक्टिविटी कोड:
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>
क्या इसे ठीक करने के लिए कुछ है?
जवाब
तो, finish();
अपने हैंडलर के अंदर से निकालने से यह हल हो जाएगा
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(MainActivity.this, HomeActivity.class);
startActivity(intent);
finish();
}
}, SPLASH_SCREEN);
यदि आप स्टैक से स्प्लैश स्क्रीन को हटाना चाहते हैं, तो आप कर सकते हैं
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
एक शून्य ऑब्जेक्ट संदर्भ पर वर्चुअल विधि 'शून्य androidx.constraintlayout.widget.ConstraintLayout.setBackgroundResource (int)' को लागू करने का प्रयास करें
अब आप HomeActivity में हैं onCreate
, और यह No Activity found to handle Intent { }
Error से अलग है ।
यह बताता है कि आपके constraintLayout
नीचे के बयान में अशक्त है और आप setBackgroundResource
तब तक कॉल नहीं कर सकते जब तक आप इसे एक अशक्त मान के साथ जोड़ नहीं देते
constraintLayout.setBackgroundResource(R.drawable.burj_khalifa);
आपको यह आपकी गतिविधि लेआउट से मिला है, आपको यह जांचने की आवश्यकता है कि यह आईडी R.id.layout
वास्तव में activity_home.xml
लेआउट में पहले समस्या निवारण कदम के रूप में मौजूद है
constraintLayout = (ConstraintLayout) findViewById(R.id.layout);
अपने घोषणापत्र में केवल .HomeActivity के बजाय .Activity.HomeActivity लिखने की कोशिश करें, इसके अलावा अगर यह अभी भी त्रुटि दिखाता है तो मुझे लगता है कि आप 'R.id.layout' को केवल इसलिए नहीं लिख सकते क्योंकि 'लेआउट' एक कीवर्ड है इसलिए किसी भी आईडी को अपनी बाधा को परिभाषित करने का प्रयास करें। लेआउट।