2

当用户在安装我的应用程序后首次登录时会发生此错误。但是在下一次启动时(当用户已经登录时),该应用程序运行良好。

在我的应用程序中,我使用的BroadcastReceiver是用于检查互联网连接的。

Exception因此,具体而言,该应用程序在注册时具有上述内容BroadcastReceiver。任何帮助将不胜感激!

我的 logcat 如下所示

java.lang.RuntimeException: Unable to resume activity {com.android.myproject/com.android.myproject.MapActivity}: java.lang.SecurityException: Unable to find app for caller android.app.ApplicationThreadProxy@43155660 (pid=24211) when registering receiver android.content.IIntentReceiver$Stub$Proxy@43151368
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 android.app.ApplicationThreadProxy@43155660 (pid=24211) when registering receiver android.content.IIntentReceiver$Stub$Proxy@43151368
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

4

1 回答 1

4

此错误表示与另一个处理Intent.

发送一个太大,大于最大事务大小 (1Mb) 的错误可能会intent发生intent extras

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意味着与我的应用程序无关的另一个应用程序可以访问它

于 2017-01-16T19:05:47.247 回答