首页 > 解决方案 > 调试 android 应用程序时出现此错误是什么?

问题描述

当我尝试调试我的应用程序时出现此错误

java.lang.NoSuchMethodError: No virtual method requestPermissions([Ljava/lang/String;I)V in class Lcom/cscodetech/townclap/activity/LoginActivity; or its super classes (declaration of 'com.zestar.myclip.activity.LoginActivity' appears in /data/app/com.zestar.myclip-1/base.apk:classes2.dex)
        at com.zestar.myclip.activity.LoginActivity.onCreate(LoginActivity.java:92)

logcat 指向了这行代码

requestPermissions(new String[]{Manifest.permission.CALL_PHONE, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, 1);

那条线有什么问题

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        ButterKnife.bind(this);
        FirebaseApp.initializeApp(this);
        requestPermissions(new String[]{Manifest.permission.CALL_PHONE, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, 1);
        custPrograssbar = new CustPrograssbar();
        sessionManager = new SessionManager(LoginActivity.this);
        atCode.setOnFocusChangeListener((view, b) -> {
            if (!b) {
                // on focus off
                String str = atCode.getText().toString();

                ListAdapter listAdapter = atCode.getAdapter();
                for (int i = 0; i < listAdapter.getCount(); i++) {
                    String temp = listAdapter.getItem(i).toString();
                    if (str.compareTo(temp) == 0) {
                        return;
                    }
                }

                atCode.setText("");

            }
        });
        getCodelist();
    }

标签: javaandroidandroid-studio

解决方案


发生异常时请提供您的日志。也许错误是因为android版本。您必须检查 android 版本是否大于 Api 级别 26 (Marshmallow):

 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
     requestPermissions(INITIAL_PERMS, INITIAL_REQUEST);
 }

推荐阅读