Android 无法实例化错误?

Android 无法实例化错误?,android,sms,broadcastreceiver,Android,Sms,Broadcastreceiver,这是我的源代码 public class MainActivity extends Activity { private static String content; private static String phone; private String number; private String message; private BroadcastReceiver receiver = new BroadcastReceiver(){ @Override

这是我的源代码

public class MainActivity extends Activity {
  private static String content;
  private static String phone;
  private String number;
  private String message;

  private  BroadcastReceiver receiver =  new BroadcastReceiver(){

    @Override
    public void onReceive(Context context, Intent intent) {
        //---get the SMS message passed in---
        Bundle bundle = intent.getExtras();        
        SmsMessage[] msgs = null;

        if (bundle != null)
        {
            number = "";
             message = "";
            //---retrieve the SMS message received---
            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];            
            for (int i=0; i<msgs.length; i++){
                msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);                
                number = msgs[i].getOriginatingAddress();                     

               message = msgs[i].getMessageBody();


            }
            //---display the new SMS message--- 
            Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
            SendMe();
    }
    }


};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    IntentFilter filter = new IntentFilter(); 
     registerReceiver(receiver, filter);
    setContentView(R.layout.main);



    }


             public void SendMe(){


    PendingIntent pi =  PendingIntent.getActivity(this, 0,
                new Intent(this, MainActivity.class), 0);  
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(number, null, message, pi, null);

}
}
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".MainActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
           <receiver android:name="com.ftt.autospond.MainActivity"> 
        <intent-filter> 
            <action android:name=
                "android.provider.Telephony.SMS_RECEIVED" /> 
公共类MainActivity扩展活动{
私有静态字符串内容;
专用静态串电话;
私有字符串编号;
私有字符串消息;
private BroadcastReceiver=新的BroadcastReceiver(){
@凌驾
公共void onReceive(上下文、意图){
//---获取传入的SMS消息---
Bundle=intent.getExtras();
SmsMessage[]msgs=null;
if(bundle!=null)
{
数字=”;
message=“”;
//---检索收到的SMS消息---
Object[]pdus=(Object[])bundle.get(“pdus”);
msgs=新SMS消息[PDU.length];

对于(int i=0;i在setContentView(R.layout.main)之后注册接收者;

确保您的活动已注册到androidmanefest.xml文件中

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".MainActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
           <receiver android:name="com.ftt.autospond.MainActivity"> 
        <intent-filter> 
            <action android:name=
                "android.provider.Telephony.SMS_RECEIVED" /> 

编辑:你不能让你的接收者在你的清单中这样一个预先存在的类中注册。如果你在你的类中动态注册,那么就没有必要在你的清单中注册它…把那个接收者拉出来,看看是否能解决它

我已经添加了这个。我在上面的编辑中发布了我的清单,所以你们可以看到..也许我有一个pr这里有个问题。你不能让你的接收者像那样在你的清单中注册。如果你在你的类中动态注册,那么就没有必要在你的清单中注册它……把那个接收者拉出来,看看这能不能解决问题it@Mutmatt没错!但唯一的问题是..在广播接收器内部没有发生任何事情当收到文本时,将不显示祝酒词。这就好像它没有意识到它已收到文本一样。
IntentFilter filter=new IntentFilter();filter.setAction(“android.provider.Telephony.SMS_received”);registerReceiver(receiver,filter)
应该注意it@Mutmatt您的意思是filter.addAction吗?因为它没有显示清单xml中的setActionwhat is“”。它是否存在,如果存在,则它是否扩展了BroadcastReceiver。如果您没有使用此接收器,请从xml中删除该项,您的错误应该消失。
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".MainActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
           <receiver android:name="com.ftt.autospond.MainActivity"> 
        <intent-filter> 
            <action android:name=
                "android.provider.Telephony.SMS_RECEIVED" />