簡體   English   中英

廣播接收器啟動錯誤

[英]Error in Broadcast Receiver launch

我正在編寫一個簡單的代碼,當我收到一條消息時啟動一個廣播接收器。 但是我得到一個強制關閉錯誤。 我已經在 AndroidManifest.xml 中添加了所需的權限。 我從這個站點(http://www.androidcompetencycenter.com/2008/12/android-api-sms-handling/)獲取了 BroadcastReceiever 的代碼。 請告訴我我哪里出錯了。 這是我的代碼:

package com.example.findme;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;



public class SMSReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();

        Object messages[] = (Object[]) bundle.get("pdus");
        SmsMessage smsMessage[] = new SmsMessage[messages.length];
        for (int n = 0; n < messages.length; n++) {
            smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);*/
        Toast.makeText(context,"Reveived!",1).show();
        }

        // show first message
       Toast toast = Toast.makeText(context, "Received SMS: " + smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);
        toast.show();
    }

這是 logCat:

11-09 21:05:03.190: D/AndroidRuntime(446): Shutting down VM
11-09 21:05:03.190: W/dalvikvm(446): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
11-09 21:05:03.230: E/AndroidRuntime(446): FATAL EXCEPTION: main
11-09 21:05:03.230: E/AndroidRuntime(446): java.lang.RuntimeException: Unable to instantiate receiver com.example.smsmanager1.receiver.SMSReceiver: java.lang.ClassNotFoundException: com.example.smsmanager1.receiver.SMSReceiver in loader dalvik.system.PathClassLoader[/data/app/com.example.smsmanager1-1.apk]
11-09 21:05:03.230: E/AndroidRuntime(446):  at android.app.ActivityThread.handleReceiver(ActivityThread.java:2789)
11-09 21:05:03.230: E/AndroidRuntime(446):  at android.app.ActivityThread.access$3200(ActivityThread.java:125)
11-09 21:05:03.230: E/AndroidRuntime(446):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2083)
11-09 21:05:03.230: E/AndroidRuntime(446):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-09 21:05:03.230: E/AndroidRuntime(446):  at android.os.Looper.loop(Looper.java:123)
11-09 21:05:03.230: E/AndroidRuntime(446):  at android.app.ActivityThread.main(ActivityThread.java:4627)
11-09 21:05:03.230: E/AndroidRuntime(446):  at java.lang.reflect.Method.invokeNative(Native Method)
11-09 21:05:03.230: E/AndroidRuntime(446):  at java.lang.reflect.Method.invoke(Method.java:521)
11-09 21:05:03.230: E/AndroidRuntime(446):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-09 21:05:03.230: E/AndroidRuntime(446):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-09 21:05:03.230: E/AndroidRuntime(446):  at dalvik.system.NativeStart.main(Native Method)
11-09 21:05:03.230: E/AndroidRuntime(446): Caused by: java.lang.ClassNotFoundException: com.example.smsmanager1.receiver.SMSReceiver in loader dalvik.system.PathClassLoader[/data/app/com.example.smsmanager1-1.apk]
11-09 21:05:03.230: E/AndroidRuntime(446):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
11-09 21:05:03.230: E/AndroidRuntime(446):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
11-09 21:05:03.230: E/AndroidRuntime(446):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
11-09 21:05:03.230: E/AndroidRuntime(446):  at android.app.ActivityThread.handleReceiver(ActivityThread.java:2780)
11-09 21:05:03.230: E/AndroidRuntime(446):  ... 10 more
11-09 21:05:13.211: I/Process(446): Sending signal. PID: 446 SIG: 9

接收方聲明中類的全名不正確。

在您的清單文件中,您必須替換

com.example.smsmanager1.receiver.SMSReceiver

經過

com.example.findme.SMSReceiver

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM