Android 错误报告java.lang.ClassNotFoundException

Android 错误报告java.lang.ClassNotFoundException,android,google-play,Android,Google Play,在开发人员控制台中,我收到一些关于以下异常的错误报告: java.lang.RuntimeException: Unable to instantiate receiver com.cypressworks.changelogviewer.InstallReciever: java.lang.ClassNotFoundException: com.cypressworks.changelogviewer.InstallReciever in loader dalvik.system.PathCl

在开发人员控制台中,我收到一些关于以下异常的错误报告:

java.lang.RuntimeException: Unable to instantiate receiver com.cypressworks.changelogviewer.InstallReciever: java.lang.ClassNotFoundException: com.cypressworks.changelogviewer.InstallReciever in loader dalvik.system.PathClassLoader[/mnt/asec/com.cypressworks.changelogviewer-1/pkg.apk]
at android.app.ActivityThread.handleReceiver(ActivityThread.java:1773)
at android.app.ActivityThread.access$2400(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:981)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:845)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:603)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.cypressworks.changelogviewer.InstallReciever in loader dalvik.system.PathClassLoader[/mnt/asec/com.cypressworks.changelogviewer-1/pkg.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:1764)
... 10 more
一位用户添加了这样一条消息:当他在市场上更新应用程序时,这个错误发生了

我自己从未经历过这种异常,尽管我对原因有一个猜测。接收器监听
android.intent.action.PACKAGE\u REPLACE
android.intent.action.PACKAGE\u ADDED
。当应用程序本身更新时,广播会发送到接收器,但在它应该接收广播时,广播已被删除

我的猜测听起来合理吗?如何避免这个错误

以下是清单条目:

        <receiver
            android:name=".InstallReciever"
            android:exported="false"
            android:enabled="true">
            <intent-filter>
                <action
                    android:name="android.intent.action.PACKAGE_REPLACED" />
                <action
                    android:name="android.intent.action.PACKAGE_ADDED" />
                <data
                    android:scheme="package" />
            </intent-filter>
        </receiver>

你有没有在你的Android清单中提到过receiver类?我已经添加了coude。当然,接收者被添加到清单中。正如我提到的,我在我的领域从来没有过这样的例外,因为一切都很顺利。我只是从开发控制台得到这个错误。你在你的Android清单中提到过receiver类吗?我已经添加了coude。当然,接收者被添加到清单中。正如我提到的,我在我的领域从来没有过这样的例外,因为一切都很顺利。我只是从开发人员控制台得到这个错误。
public class InstallReciever extends BroadcastReceiver {

    @Override
    public void onReceive(final Context c, final Intent intent) {
        final SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(c);

        //Checking some preferences...

        //Creating a notification

        final String ns = Context.NOTIFICATION_SERVICE;
        final NotificationManager mNotificationManager = (NotificationManager) c
                .getSystemService(ns);

        final int icon = R.drawable.icon;
        final CharSequence tickerText = c.getString(R.string.notification_text);
        final long when = System.currentTimeMillis();

        final Notification notification = new Notification(icon, tickerText,
                when);

        final CharSequence contentText = c.getString(R.string.app_name);

        final Intent notificationIntent = new Intent(c,
                ChangeListActivity.class);
        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
                | Intent.FLAG_ACTIVITY_SINGLE_TOP
                | Intent.FLAG_ACTIVITY_NEW_TASK);

        final PendingIntent contentIntent = PendingIntent.getActivity(c, 0,
                notificationIntent, 0);

        notification.setLatestEventInfo(c, tickerText, contentText,
                contentIntent);

        mNotificationManager.notify(0, notification);
    }

}