当前位置: 首页 > 知识库问答 >
问题:

使用方法checkSelfPermission时激发了运行时异常(java.lang.NoSuchMethodError

越正阳
2023-03-14

使用CheckSelfPermission方法时激发了以下异常。应用程序的targetSDKVersion为21。

致命异常:主进程:app.rvamd.RecoverAllMyDeletedFile,PID:3700 java.lang.NoSuchMethodError:类landroid/support/v4/content/contextCompat中没有静态方法checkSelfPermission(landroid/content/context;ljava/lang/string;)I;或其超类(“Android.support.v4.content.contextCompat”的声明出现在/data/app/app.rvamd.RecoverAllMyDeletedFile-1/base.apk中)

有人对此有想法吗?为同一仿真器设备中的另一个应用程序正确调用了该方法。除此之外,我能知道Phone/Emulator是如何选择支持库方法的吗?

代码如下

     if (ContextCompat.checkSelfPermission(this,
                        Manifest.permission.READ_CONTACTS)
                != PackageManager.PERMISSION_GRANTED) {

                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.READ_CONTACTS},
                        MY_PERMISSIONS_REQUEST_READ_CONTACTS);
                return;


        }

共有1个答案

况庆
2023-03-14

您可能需要将compilesdkversion升级到23。这是因为自API23以来添加了运行时权限特性。

 类似资料:
  • 问题内容: 当遵循设置Room Persistence库的教程时,在Android设备上进行测试时会遇到此错误。 java.lang.RuntimeException:找不到 PackageName.AppDatabase的实现。AppDatabase_Impl不存在 我知道有人问过类似的问题,但这是由于KotlinGradle问题引起的。 测试类别: 道: 数据库: 堆栈跟踪: 摇篮: 问题答案

  • 这是我要膨胀保存的axml文件 newstile.axml 和库存。 任何帮助都将不胜感激。提前谢谢你。这是调试中可能有用的部分

  • 问题内容: 我试图在Linux命令提示符下运行JUnit,其中包含必要的JARS(hamcrest- core-1.3.jar和junit.jar)和类文件,并且正在使用以下命令来运行JUnit: TestJunit类: TestRunner: 我在运行此时遇到以下异常 问题答案: 如果您使用 JUnit 4.4核心运行 程序执行一个no的类,则将得到此异常。 请查阅链接以获取更多信息。 由vip

  • 我试图用JUnit运行一个cucumber测试,但我得到了异常。 JUnit代码: 例外情况: 设置cucumber测试时的NoClassDefoundErr 线程“main”java.lang.NoClassDeffounderRror:gherkin/formatter/formatter 以下问题的答案已经建议添加相同版本的黄瓜jar文件。但是,由于Maven存储库中可用的jar文件本身没有

  • 我通过REST使用SpringData和Neo4j,当我添加@Indexed(unique=true)时,我看到了一个异常。这不会在embedded中引发异常,如果删除unique=true,也不会在REST中引发异常。即使数据库为空(没有节点和索引),也会发生这种情况。 有什么想法吗? 以下是异常跟踪: 为了完整起见,下面是测试代码:

  • 声明运行时异常的方法的指导原则是什么? 假设我调用一个抛出的第三方例程。该例程能够抛出而不声明它这样做是否允许/标准/可接受? 和往常一样,我对我的问题引起的困惑感到惊讶:-D这可能是因为我很困惑。 在下面的代码中,可调用的是一个lambda,它发出一个,这会抛出SQLException。callable.call抛出Exception。 我由此推测,程序员希望抛出一个SQLException。然