728x90
안드로이드에서 ActivityNotFoundException 에러의 내용을 먼저 살펴보겠습니다.
Unable to find explicit activity class {com.example.teeview/com.example.teeview.LoadingActivity}; have you declared this activity in your AndroidManifest.xml?
위에 내용을 직역하면 AndroidManifest.xml에 activity가 정의가 되어있지 않다는 것입니다.
왜 이런 에러가 발생했을까요?
안드로이드 시스템은 Activity 클래스를 생성 시 AndroidManifest에 정의하는 것이 원칙입니다.
즉 저는 LoadingActivity 클래스를 만들고 startAcrivity를 통해 해당 클래스를 실행했지만
AndroidManifest에 정의를 하지 않았기 때문에 안드로이드 시스템에서는 에러로 판단합니다.
MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent loading_intent = new Intent(MainActivity.this,LoadingActivity.class);
startActivity(loading_intent);
}
}
Manifest.xml
<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.TeeView">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".LoadingActivity"></activity>
</application>
위에 Manifest 파일에서 application 태그 내부에 activity를 추가합니다.
다시 어플을 실행하면 해당 에러 없이 실행이 가능합니다.
728x90
반응형
'안드로이드' 카테고리의 다른 글
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8 에러 해결 (2) | 2022.04.08 |
---|---|
You need to have compileSdk set to at least 28 in your module build.gradle to migrate to AndroidX 에러 해결 (2) | 2022.04.08 |
안드로이드 버튼 길게 터치 이벤트 (6) | 2022.04.01 |
ArrayList 응용 (6) | 2022.03.24 |
배열보다 편한 ArrayList (2) | 2022.03.24 |
댓글