2012-12-17 6 views
1

은 내가 어떻게 기본 활동에 대한이android : am을 사용하여 명령 줄에서 원시 활동을 시작하는 방법은 무엇입니까?

am start -a android.intent.action.MAIN -n com.example.hellojni/ 
com.example.hellojni.HelloJni 

같은 것을 사용하여 자바 활동을 시작할 수 있습니다 알고 ??? AndroidManifest.xml에있는 android : name과 비슷한 -n 인수를 사용하려고 시도했지만 항상 Activity 클래스가 존재하지 않는다고 알려줍니다.

+1

입니다 시작합니다. 해당 오류가 발생하는 경우 해당 이름의 고유 한 활동 구성 요소를 명시하고 구현하지 않은 것입니다. –

답변

0

당신은 응용 프로그램 매니페스트에서, 이와 런처에서 한이 접근로 선언, 당신이 보여있는 의도를 사용하여 실행할 수 있습니다 :

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

이 이름을 사용하여 시작할 수 있습니다 활동에 대해 'android : name'속성에 선언되었습니다. 자세한 내용은 SDK에서 NativeActivity을 확인하십시오.

그러나 사용중인 예제에서는 네이티브 액티비티가 아니지만 링크 된 네이티브 라이브러리 (NDK에 포함 된 예제)가있는 일반 액티비티입니다.

도움이 되었기를 바랍니다.

+0

나는 그것이 오래된 질문이라는 것을 알고있다. 그러나 나는 여전히 이것을 작동시키는 것처럼 보이지 않는다. 네이티브 활동 프로젝트 (NDK의 공식 사례)에 대한 의향이 있습니다. 이름 충돌을 피하기 위해 android.intent.action.MAIN을 android.intent.action.NativeActivity.MAIN으로 변경하고 apk를 재배포했습니다. 하지만 "adb shell am -a android.intent.action.NativeActivity.MAIN"을 실행하면 "오류 : 활동이 시작되지 않았으며 의도를 해결할 수 없습니다. (act = android.intent.action.NativeActivity.MAIN flg = 0x10000000}" – kakyo

2

오버 라이딩 된 활동에 대한 uri가 아닌 해당 활동에 대한 android app uri가 사용하는 것과 거의 동일하게 작동합니다. android.intent.action.MAIN과 android.intent.action.LAUNCHER 모두 나를 위해 일했습니다.

오전 기술은 같은 -a android.intent.action.MAIN -n com.example.hellojni/android.app.NativeActivity

관련 문제