在我的應用程序需要啓動的主要活動如下方式記錄在其他幾個線程上SO啓動應用程序主要活動:錯誤通過一個意圖在圖書館
final String packageName = getApplicationContext().getPackageName();
final Intent launchIntent = getPackageManager().getLaunchIntentForPackage(packageName);
startActivity(launchIntent);
上面的代碼行在我的Android庫項目中,我不知道在這個地方我的主要活動的類。
這在測試設備上通過USB接口部署應用程序時非常有用,但是在4.3設備上從Google Play安裝應用程序時發生此錯誤。
07-03 13:54:19.843:E/DatabaseUtils(2344):寫入例外包裹 07-03 13:54:19.843:E/DatabaseUtils(2344):java.lang.SecurityException異常:權限拒絕:用戶的獲取/設置設置要求以用戶-2運行,但是從用戶0進行調用;這需要android.permission.INTERACT_ACROSS_USERS_FULL 07-03 13:54:19.843:E/DatabaseUtils(2344):at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:13140) 07-03 13:54 :19.843:E/DatabaseUtils(2344):at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:2038) 07-03 13:54:19.843:E/DatabaseUtils(2344):at com.android.providers.settings .SettingsProvider.callFromPackage(SettingsProvider.java:607) 07-03 13:54:19.843:E/DatabaseUtils(2344):at android.content.ContentProvider $ Transport.call(ContentProvider.java:279) 07-03 13 :54:19.843:E/DatabaseUtils(2344):at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:273) 07-03 13:54:19.843:E/DatabaseUtils(2344):at android.os.Binder .execTransact(Binder.java:388) 07-03 13:54:19.843:E/DatabaseUtils(2344):at com.android.server.SystemServer.init1(Native Method) 07-03 13:54:19.843:E/DatabaseUtils(2344):at com .android.server.SystemServer.main(SystemServer.java:2012) 07-03 13:54:19.843:E/DatabaseUtils(2344):at java.lang.reflect.Method.invokeNative(Native Method) 07-03 13:54:19.843:E/DatabaseUtils(2344):at java.lang.reflect.Method.invoke(Method.java:525) 07-03 13:54:19.843:E/DatabaseUtils(2344):at com。 android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1046) 07-03 13:54:19.843:E/DatabaseUtils(2344):at com.android.internal.os.ZygoteInit.main(ZygoteInit。 java:862) 07-03 13:54:19.843:E/DatabaseUtils(2344):at dalvik.system.NativeStart.main(Native Method)
有人遇到同樣的問題嗎?
編輯:
我沒有提到,在SO提到,「
android.permission.INTERACT_ACROSS_USERS_FULL是簽名級別的權限幾個線程您的應用程序將無法使用它之前,除非它。具有相同簽名的系統。「
Permission Denial: startActivity asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
Permission Denial: this requires android.permission.INTERACT_ACROSS_USERS_FULL What do I do about: this requires android.permission.INTERACT_ACROSS_USERS_FULL
但是,由於上面的代碼似乎被其他開發者使用,我仍然希望有一個解決方案。
編輯2:
刪除堆棧不相關的問題。
任何機會,你可以解釋什麼/你的解決方法如何工作? –
你好!我得到了和你以前一樣的確切的錯誤,這很令人沮喪,因爲它可能會嚇壞你!雖然,當我嘗試建立UDP連接並向服務器發送消息時,出現錯誤...有什麼機會可以給我一些關於如何解決它的提示? – Vlad
如上所述,SecurityException與啓動主要活動的問題無關。上述解決方法通過使用主活動類名重新創建一個意向來解決使用包管理器獲取null啓動意向的問題。 –