10

비슷한 문제를보고하는 몇 가지 스레드가 있지만 none of them은 실제로 시도하지 않은 것을 제공합니다.ActivityNotFoundException (예,이 활동이 AndroidManifest.xml에 선언되었습니다.)

무고한 콜 :

<application> 
    <activity android:name="MyActivityLib" /> 
    <activity android:name="com.example.baseapp.MyEditPreferences" android:label="@string/app_name"> 
    </activity> 
</application> 

는 다음과 같은 예외 트리거 : 다음의 AndroidManifest.xml에 다음과

mActivity.startActivity(new Intent(mActivity, MyEditPreferences.class)); 

06-14 14:06:50.297: ERROR/AndroidRuntime(9272): 
android.content.ActivityNotFoundException: Unable to find explicit activity class 
{com.example.baseapp.paypal/com.example.baseapp.MyEditPreferences}; 
have you declared this activity in your AndroidManifest.xml? 

일들이를, 사용이 코드 모 놀리 식 응용 프로그램 프로젝트에서 2 부분 프로젝트로 변경하기 전에 완벽하게 작동해야합니다. 도서관 프로젝트 및 신청 프로젝트로 구성됩니다.

AndroidManifest.xml은 라이브러리 프로젝트에있는 AndroidManifest.xml입니다.

이것을 제거하려면 무엇이 필요합니까? ActivityNotFoundException을 제거 하시겠습니까?

+1

Whats com.example.baseapp.paypal ?? 페이팔 (paypal) 라이브러리를 사용하고 있습니까? –

+0

@Ravi Vyas 예, 있습니다. 이것은 하나의 응용 프로그램 프로젝트를 2 부분으로 나눠서 만든 주요 이유입니다. 모든 안드로이드 시장에 공통적 인 라이브러리와 각 안드로이드 마켓이나 앱 스토어에 맞춤화 된 작은 액티비티 클래스 (라이브러리 액티비티 클래스에서 파생 됨)가 있습니다. .뭐 알아 차 렸니? – an00b

+0

다른 패키지에있는 것과 같은 클래스를 호출 할 의도를 만들 수 있다고 생각하지 않습니다. – Maximus

답변

14

방금 ​​문제가 해결되었습니다.

내가해야 할 일을했을 모든

은에 FQN를 추가했다 응용 프로그램 프로젝트의 AndroidManifest.xml :

<activity android:name="com.example.baseapp.MyEditPreferences" 
      android:label="com.example.baseapp.MyActivityLib:string/app_name"> 
</activity> 

는 사실, 나는 도서관 프로젝트의 AndroidManifest.xml 완전하게 MyEditPreferences에 대한 참조를 제거하고 그것은 여전히 ​​작동합니다.

는 또한 원래 startActivity를 한 줄 문으로 작동합니다

mActivity.startActivity(new Intent(mActivity, MyEditPreferences.class)); 

결론 : 그것은 중요한 응용 프로그램의 AndroidManifest.xml하지 도서관.

+2

그것이 문서에서 말하는 것입니다. –

+1

문서에서 어디에서이 메시지가 나옵니까? 링크를 제공 할 수 있습니까? –

+0

여기에 쓰여 있습니다 : http://developer.android.com/tools/projects/projects-projects-eclipse.html – user1324936

1

어쩌면 작동할까요?

Intent mIntent = new Intent(); 
mIntent.setClassName(mActivity, "com.example.baseapp.MyEditPreferences"); 
mActivity.startActivity(mIntent); 
+0

제안에 감사하고 +1합니다. 방금 시도했지만 도움이되지 않았습니다. 또한 엄청나게 비슷한 문제를 설명하는 스레드를 발견했습니다. http://stackoverflow.com/questions/5363548/activitynotfound-exception-thrown-for-a-preferenceactivity-listed-in-the-manifest/5363603#5363603 FQN 접근 방식이 효과가있었습니다. 그,하지만 나를 위해 문제를 해결하지 않았다. 다른 아이디어? – an00b

-1

나는 이것이 매우 오래된 스레드라는 것을 알고 있지만, 나는 똑같은 문제를 가지고있다. 내 경우에는 내가했던 일은, 당신은 이름이 안드로이드 패키지에 포함 된 클래스를 사용하는 경우 의사

import java.util.prefs.Preferences; 
0

을 삭제했다 (설정, 환경 설정, 활동, ...),이를 넣어해야합니다 : 당신은 "name_of_your_package"를 넣지 않으면

Intent i = new Intent(this, <name_of_your_package>.classname.class); 

, 컴파일러는 당신이 안드로이드 패키지의 클래스에 다스 려 있다고 생각합니다 (안드로이드 *.).

-2

IDE가 가리 키지 않은 오류가 있는지 확인하십시오.