안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
앱개발하고 있는 즐생이라고 합니다.
탭호스트로 빌트인 앱인 알람클럭을 불러오려고 하는데,
시큐리티 익셉션을 발생시킵니다. 그냥 인텐트로 startActivity 시에는 잘 동작합니다만,
탭호스트로 실행시키면 퍼미션 에러발생시키는 것 같네요.
어떤 퍼미션을 주어야 할까요. 만약 퍼미션문제가 아니라면 어떻게 해결을 해야할지 ㅠ.,ㅠ
답변부탁드립니다.
06-06 16:27:09.252: E
RROR/AndroidRuntime(12902): Uncaught handler: thread main exiting due to uncaught exception
final TabHost tabHost = getTabHost(); tabHost.addTab(tabHost.newTabSpec("tab1") .setIndicator("アラム",getResources().getDrawable(R.drawable.alarm1)) .setContent(new Intent().setComponent(new ComponentName("com.android.alarmclock", "com.android.alarmclock.AlarmClock"))));
RROR/AndroidRuntime(12902): Uncaught handler: thread main exiting due to uncaught exception
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.m7/com.m7.MorningInfo}: java.lang.SecurityException: Requesting code from com.android.alarmclock (with uid 10000) to be run in process com.m7 (with uid 10024)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.os.Handler.dispatchMessage(Handler.java:99)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.os.Looper.loop(Looper.java:123)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.ActivityThread.main(ActivityThread.java:4203)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at java.lang.reflect.Method.invokeNative(Native Method)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at java.lang.reflect.Method.invoke(Method.java:521)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at dalvik.system.NativeStart.main(Native Method)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): Caused by: java.lang.SecurityException: Requesting code from com.android.alarmclock (with uid 10000) to be run in process com.m7 (with uid 10024)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.ActivityThread.getPackageInfo(ActivityThread.java:2068)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2297)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2242)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:631)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.widget.TabHost.setCurrentTab(TabHost.java:317)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.widget.TabHost.addTab(TabHost.java:210)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at com.m7.MorningInfo.onCreate(MorningInfo.java:31)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
06-06 16:27:09.262: ERROR/AndroidRuntime(12902): ... 11 more
2010.06.06 23:27:31
탭호스트를 쓸 때, 다른 말로 액티비티 그룹을 쓸 때는 부모 액티비티와 자식 액티비티가 같은 프로세스, 같은 user id 를 공유하는 경우에만 가능 합니다. Apk는 별도여도 됩니다. 자식 액티비티와 부모 액티비티를 동시에 개발하는 경우가 아니면 그 조건을 맞추기가 어렵구요.
2011.06.24 11:56:19
탭호스트에 다른 APK를 붙일 수 있는 방법이 있습니다. 예전 글이지만 정보 공유 차원에서 답글 남깁니다.
링크대로 user id 공유 해서 생성 하시면 탭에서도 다른 APK 호출이 가능합니다.
http://www.androidpub.com/10481 링크 참조 하시면 됩니다.