2013-03-05 2 views
3

내 안드로이드 응용 프로그램에서 다른 프로젝트의 일부인 하나의 활동에 액세스하고 싶습니다. 이를 위해 해당 프로젝트를 내 응용 프로그램과 연결하고 내 매니페스트 내부에서 해당 활동을 선언했습니다. 그러나 여전히 작동하지 않습니다. 로그 캣 쇼,android에서 다른 프로젝트의 활동에 액세스하기

FATAL EXCEPTION: main 
java.lang.NoClassDefFoundError: com.example.apptwo 

매니페스트 선언 :

<activity android:name="com.example.apptwo.Activity2"></activity> 

시작

Intent i = new Intent(Activity1.this, com.example.apptwo.Activity2.class); 
startActivity(i); 

이 사람이 나를 도울 수

활동 .....?

+0

액세스 권한은 무엇입니까? 스타트? –

+0

다른 프로젝트를 라이브러리로 추가해야 할 수도 있습니다. 또는 두 프로젝트가 모두 액세스하려고하는 라이브러리에서 액세스하려는 구성 요소를 사용하는 것이 좋습니다. – Muz

+0

@dtmilano : 예, 그 활동을 시작 ..... – akh

답변

0

프로젝트의 Manifest에는 존재하지 않는 클래스를 추가 할 필요가 없습니다.

Activity에 액세스하려면 다른 프로젝트 또는 그 밖의 다른 방법을 사용하십시오. Intents 정도에서 사용할 때 패키지 이름을 포함한 전체 클래스 이름을 전달하면됩니다.

추가됨 : - 작동했지만 라이브러리의 활동을 매니페스트 파일에 선언해야합니다.

+1

나는 이것을 시도했지만 ....이 예외를 가지고 있습니다 ........... android .content.ActivityNotFoundException : 명시 적 활동 클래스를 찾을 수 없습니다. {com.example.appone/com.example.apptwo}; AndroidManifest.xml에서이 활동을 선언하셨습니까? – akh

+2

그것은 작동했지만 .... 라이브러리의 활동은 매니 페스트 파일 ..... – akh

0

해당 프로젝트를 라이브러리 프로젝트로 추가 한 경우 Manifest 안에 프로젝트를 정의 할 필요가 없습니다. Java 클래스로 가져 와서 액세스하면됩니다.

import com.example.apptwo.Activity2; 
0

다른 프로젝트의 활동에 액세스해야하는 Java 파일의 코드를 사용하십시오.

import com.example.apptwo.Activity2; 

그리고 당신은 두 번째 활동으로 처음부터 이동이 activity.Use 의도에서 메소드와 변수에 액세스 할 수 가져 와서

.

-1

사용 의도와 문자열을 사용하여 구성 요소 이름 설정 : "com.example.apptwo"가 설치되어 activity2에이 매니페스트에 수출하는 경우

final Intent intent = new Intent(); 
intent.setClassName("com.example.apptwo", "com.example.apptwo.Activity2"); 
startActivity(intent); 

작동됩니다.

+0

으로 선언해야합니다. 아무 것도 포함시키지 않거나 프로젝트를 링크 할 필요가 없습니다 –

+1

이렇게하면 작동합니다. 두 번째 응용 프로그램은 이미 장치에 설치되어 있습니다 ... 맞습니까? – akh

관련 문제