इरादे को संभालने के लिए कोई गतिविधि नहीं मिली {}

Nov 28 2020

मेरे वेदर ऐप पर , स्प्लैश स्क्रीन अच्छी तरह से चलती है लेकिन जब यह अंदर जा रही होती है 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>

क्या इसे ठीक करने के लिए कुछ है?

जवाब

3 Zain Nov 28 2020 at 22:26

तो, 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);
Jamal Nov 28 2020 at 21:58

अपने घोषणापत्र में केवल .HomeActivity के बजाय .Activity.HomeActivity लिखने की कोशिश करें, इसके अलावा अगर यह अभी भी त्रुटि दिखाता है तो मुझे लगता है कि आप 'R.id.layout' को केवल इसलिए नहीं लिख सकते क्योंकि 'लेआउट' एक कीवर्ड है इसलिए किसी भी आईडी को अपनी बाधा को परिभाषित करने का प्रयास करें। लेआउट।