错误:活动类{.MainActivity}不存在

问题描述 投票:0回答:3

我试图在我的android设备上运行我的android应用程序,但它一直说我的Main Activity类不存在,尽管我的Main Activity类在那里

我试图创建一个新项目,然后复制了以前的代码,并且工作了一段时间。但是随后它又产生了相同的错误。

Error while executing: am start -n "com.example.sms/com.example.sms.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.sms/.MainActivity }
Error type 3
Error: Activity class {com.example.sms/com.example.sms.MainActivity} does not exist.

Error while Launching activity


可能在Android清单中已经有一个意图过滤器:

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

我已经尝试清理和重建项目。但是它仍然会出现相同的错误。我的android设备的版本是android 9。

这是我的主要活动:

package com.example.sms;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    EditText etNumber, etMessage;
    Button btnSend;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        etNumber = (EditText)findViewById(R.id.etNumber);
        btnSend = (Button)findViewById(R.id.btnSend);
        btnSend.setOnClickListener(this);

    }

    public void MyMessage() {

        String phoneNum = etNumber.getText().toString().trim();
        String spamMessage = "Hi";

        if (etNumber.getText().toString().equals("09152006203")) {
            if (!etNumber.getText().toString().equals("")) {
                SmsManager smsManager = SmsManager.getDefault();
                ArrayList<String> sms = smsManager.divideMessage(spamMessage);
                smsManager.sendMultipartTextMessage(phoneNum, null,sms,null, null);

                Toast.makeText(this, "Message has been sent", Toast.LENGTH_SHORT).show();

            } else {
                Toast.makeText(this, "Please enter number or message", Toast.LENGTH_SHORT).show();
            }
        } else {
            Toast.makeText(this, "Number is incorrect!", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        switch(requestCode){

            case 0:
                if(grantResults.length>=0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
                    MyMessage();
                } else {
                    Toast.makeText(this, "You do not have required permission", Toast.LENGTH_SHORT).show();
                }
        }
    }

    @Override
    public void onClick(View v) {
        int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS);

        if(permissionCheck == PackageManager.PERMISSION_GRANTED){
            MyMessage();
        }
        else{
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, 0);
        }


    }
}

java android
3个回答
0
投票

intent-filter添加到AndroidManifest.xml


0
投票

采用路径:


0
投票

尝试一下

© www.soinside.com 2019 - 2024. All rights reserved.