1

Эта ошибка возникает, когда пользователи имеют первый логин после установки моего приложения. Но в следующем запуске (когда пользователь уже вошел в систему) приложение работает нормально.java.lang.SecurityException: Не удается найти приложение для вызывающего android.app.ApplicationThreadProxy при регистрации приемника android.content.IIntentReceiver

В моем приложении я использую BroadcastReceiver, который используется для проверки подключения к Интернету.

Чтобы быть конкретным, приложение имеет вышеуказанный Exception при регистрации этого BroadcastReceiver. Любая помощь будет очень appereciated!

Мой LogCat как ниже

java.lang.RuntimeException: Unable to resume activity {com.android.myproject/com.android.myproject.MapActivity}: java.lang.SecurityException: Unable to find app for caller [email protected] (pid=24211) when registering receiver [email protected] 
1 at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2762) 
2 at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2791) 
3 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1288) 
4 at android.os.Handler.dispatchMessage(Handler.java:99) 
5 at android.os.Looper.loop(Looper.java:137) 
6 at android.app.ActivityThread.main(ActivityThread.java:5095) 
7 at java.lang.reflect.Method.invokeNative(Native Method) 
8 at java.lang.reflect.Method.invoke(Method.java:511) 
9 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:845) 
10 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 
11 at dalvik.system.NativeStart.main(Native Method) 
12Caused by: java.lang.SecurityException: Unable to find app for caller [email protected] (pid=24211) when registering receiver [email protected] 
13 at android.os.Parcel.readException(Parcel.java:1425) 
14 at android.os.Parcel.readException(Parcel.java:1379) 
15 at android.app.ActivityManagerProxy.registerReceiver(ActivityManagerNative.java:2228) 
16 at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1356) 
17 at android.app.ContextImpl.registerReceiver(ContextImpl.java:1324) 
18 at android.app.ContextImpl.registerReceiver(ContextImpl.java:1318) 
19 at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:423) 
20 at com.android.myproject.MapActivity.onResumeOperations(MapActivity.java:584) 
21 at com.android.myproject.MapActivity.onResume(MapActivity.java:618) 
22 at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1185) 
23 at android.app.Activity.performResume(Activity.java:5203) 
24 at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2752) 

Для того, чтобы прояснить мой вопрос, мой onResumeOperations() выглядеть

public void onResumeOperations(){ 
    if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)&& !isFinishing()) { 
     ShowGpsDialog(); 
    } else { 
     removeGpsDialog(); 
    } 

    registerReceiver(internetConnectionReciever, new IntentFilter(
      "android.net.conn.CONNECTIVITY_CHANGE")); 
    registerReceiver(GpsChangeReceiver, new IntentFilter(
      LocationManager.PROVIDERS_CHANGED_ACTION)); 
    isRecieverRegistered = true; 

    if (AndyUtils.isNetworkAvailable(this) 
      && manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
     if (!isDataRecieved) { 

      checkStatus(); 
      startLocationUpdateService(); 
      // getPreReservations(); 
     } 
    } 

    registerIsApproved(); 

    startRepeatingChecker(); 
} 

это onResumeOperations() называется в onResume(). И, как я уже упоминал ранее, проблема возникает при регистрации internetConnectionReceiver.

+0

может ли вы предоставить лог-код? – rafsanahmad007

+0

, пожалуйста, мой отредактированный вопрос –

+0

Можете ли вы разместить свой «MapActivity.java: 618» вместе с каким-либо другим соответствующим кодом? –

ответ

3

Эта ошибка означает, что произошла ошибка связи с обработкой другого процесса в Intent.

Эта ошибка может произойти посылки intent с intent extras, являющейся слишком большой, больше, чем максимальный размер транзакции (1Mb).

Передача фотографий высокого разрешения или большой файл через extras не рекомендуется, лучше практика, чтобы сохранить файл на внешнем запоминающем устройстве получить Uri ссылки на него и отправить этот реф в String в ваших намерениях лишней

yourIntent.putExtra("key", yourUri.toString) 

попробовать Также android:exported="true" в activity теге

<activity 
android:name=".your_activity" 
android:label="@string/app_name" 
android:exported="true"> 

установка экспортированного тега на true означает, что к нему может обратиться другое приложение, не относящееся к моему приложению

+0

Решила проблему, я думаю. Спасибо! –

0

Проверьте, были ли вы добавлены эти разрешения в свой файл AndroidManifest.xml.

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
+0

Права доступа уже добавлены в мой проект :( –