简体   繁体   中英

Error running 'app': The activity must be exported or contain an intent-filter

I'm quite new to android development and I have never been able to test a specific activity because it won't load onto the emulator. So I took advice from other questions on this platform. I went to run -> edit configurations -> Launch: specified activity and selected the activity from the launch options but this error keeps appearing.

I have StaffMainActivity and MemberMainActivity, they are identical however the member activity doesn't have the error.

AndroidManifest code:

<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/Theme.JimsGym">
        <activity android:name=".MemberLoginActivity" />
        <activity android:name=".LoginOptions" />
        <activity android:name=".MemberMainActivity" />
        <activity android:name=".StaffMainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

StaffMainActivity code:

package com.example.jimsgym

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
import com.google.android.material.bottomnavigation.BottomNavigationView

class StaffMainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.staff_main)

        val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottomNavigationView2)
        val navController = findNavController(R.id.fragment3)

        val appBarConfiguration = AppBarConfiguration(setOf(R.id.staffHome, R.id.availabilityViewer, R.id.members))
        setupActionBarWithNavController(navController, appBarConfiguration)

        bottomNavigationView.setupWithNavController(navController)

    }
}

MemberMainActivity code:

package com.example.jimsgym

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
import com.google.android.material.bottomnavigation.BottomNavigationView

class MemberMainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.member_main)

        val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottomNavigationView)
        val navController = findNavController(R.id.fragment)

        val appBarConfiguration = AppBarConfiguration(setOf(R.id.memberHome, R.id.availabilitySetter, R.id.bmiCalc))
        setupActionBarWithNavController(navController, appBarConfiguration)

        bottomNavigationView.setupWithNavController(navController)
    }
}

Try adding parentActivity to childActivity:

   <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/Theme.JimsGym">
    <activity android:name=".MemberLoginActivity" 
   android:parentActivityName=".StaffMainActivity"/>

    <activity android:name=".LoginOptions"
     android:parentActivityName=".StaffMainActivity"/>
    <activity android:name=".MemberMainActivity"
     android:parentActivityName=".StaffMainActivity"/>

    <activity android:name=".StaffMainActivity">
  <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category 
       android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        
    </activity>
    </application>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM