2012-01-05 8 views
1

활동을 시작하는 동안 난 괜찮아 수백 번 실행 한 응용 프로그램을 가지고 있지만, 매우 드물게 나는 예외를 얻을 : 내가 선언 한 매니페스트에서임의 ActivityNotFoundException 의도 시작

Intent tIntent = new Intent(); 
tIntent.setClass(App.ctx, MyClassActivity.class); 
startActivity(tIntent); 

:

activity android:name="MyClassActivity" android:launchMode="singleTask" 

예외 :

01-01 10:41:33.723: E/AndroidRuntime(3867): android.content.ActivityNotFoundException: 
Unable to find explicit activity class {my.package/my.package.MyClassActivity}; 
have you declared this activity in your AndroidManifest.xml? 

이 원인이 될 수 무엇을 어떤 힌트가? 예외는 실제로 무작위적이고 희소하다. 응용 프로그램은 에뮬레이터에서 시작됩니다.

나는 android.content.ActivityNotFoundException: 질문을 읽었으나 문제는 체계적이며 여기서는 무작위가 아닙니다. 당신이 에뮬레이터에서 프로그램을 실행하는 경우

답변

0

같은 매니페스트 파일에 모두 활동을 추가하십시오. 그렇지 않은 경우 명확한 설명을 해주십시오. 그러나 지금 당장이 가정에 대한 답을 얻을 것입니다 ...

응용 프로그램이 개발 환경 또는 디버깅 가능한 환경에서 에뮬레이터 또는 장치에서 실행될 때마다, 그런 일이 많이 있습니다. 결과적으로로드 시간, 설치, 제거 등을 왜곡 할 수 있습니다. 가장 자주 발생하는 문제는 이미 시작된 장치 (USB를 통해 연결된 장치 또는 사용자가 열어 둔 에뮬레이터)를 빠르게 변경 한 후에 발생합니다 나타나게 하다). 1. 응용 프로그램을 다시 작성하십시오 (변경된 경우) 2. 응용 프로그램이 장치의 것과 일치하는지 확인하십시오. 3. 응용 프로그램 제거/다시 설치 4. 응용 프로그램을 실행합니다.

이 과정에서 일이 너무 빨리 발생하면 매니페스트 파일을 잘못 읽고 빌드를 "손상"시킬 수 있습니다. 간헐적으로 만 발생하는 경우에는 1 분 동안 에뮬레이터가 울리는 것입니다. 문제가 발생하고 특정 작업을 수행 할 때까지 계속되면 개발 환경이 손실됩니다. 첫 번째 문제는 실제로는 할 수있는 일이 없지만 가끔씩 너무 빨리 클릭하지 않는 것입니다. 두 번째로는 프로젝트를 "정리"합니다 (이클립스에서는 Project -> Clean을 클릭하여 완료됩니다). 이렇게하면 캐시 된 정보가 제거되고 처음부터 다시 빌드됩니다. 응용 프로그램이 반짝 반짝 빛나는 것처럼 동작합니다. 내가 찾은 그 밖의 것이 기기에서 직접 앱을 수동으로 제거하는 데 도움이되는 경우가 있습니다. 나는 여러 라이브러리를 사용하는 복잡한 앱이나 ContentResolver가 Content 오류로 인해 중단되는 경우에만이 작업을 수행합니다. 이 도움이

희망, FuzzicalLogic

+0

종합적인 답변 주셔서 감사합니다. 나는 그것이 에뮬레이터의 결함이라고 생각하지만, 예외가 발생했을 때 아주 깨끗한 상태에 있었다는 것을 기억한다. (예를 들어 이전에 클릭하는 동안 에뮬레이터에 추가 빌드가 업로드되지 않는다.) 또한 정기적으로 adb 명령 줄을 사용하여 응용 프로그램을 제거하므로 환경 설정을 지워야합니다.이 방법은 가장 빠른 방법입니다. – tmouse

+0

나는 그것이 에뮬레이터에서 실제로 결함이라고 생각하지 않지만, adb 자체에서.나는 이클립스에서 개발하고 이것은 기기와 에뮬레이션에서 나에게 일어난다. 그런 일이 생기면 adb를 리셋하여 해결할 것이지만, adb이 때때로 다시 시작하지 않기 때문에 위의 내용이 더 빠르고 안정적이라는 것을 알았습니다. –

0

는 내가 자주 변경을 디버깅하는 것으로 가정하기 위하여려고하고,이

    <activity android:name=".MyClassActivity" 
       android:label="@string/app_name" 
       android:theme="@android:style/Theme.NoTitleBar" 
       android:screenOrientation="portrait"> 
     <intent-filter> 
      <action android:name="com.pkg.MyClassActivity"/> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 
+0

이 명단에 추가하는 이유는 무엇입니까? 나는 그 추가 필터가없는 수백 대의 장치에서 앱이 잘 작동하기 때문에 궁금합니다. 여기에서 시도해 볼 수 있습니다 : [Android Market의 TM.Lazor] (https://market.android.com/details?id=info.tmouse.tlazor), 자기 홍보를 위해 유감스럽게 생각하지만 어쩌면 도움이 될 것입니다. – tmouse

관련 문제