我该如何使用Permissionsdispatcher库来处理新的Android M运行时权限?

5
我看到了一篇奶酪工厂的文章(你可以通过谷歌搜索,因为我的声誉不足以发布超过2个链接),该文章详细解释了如何处理Android Marshmallow的新权限系统。在文章中,作者提到Permissionsdispatcher库,该库旨在减少样板代码。于是我从GitHub下载了库的演示,但是出现了一个错误,显示无法解析MainActivityPermissionsDispatcher。据我所知,应该生成这个类。那么我该如何生成它以消除错误?

MainActivity.java

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    // delegate the permission handling to generated method
    // MainActivityPermissionsDispatcher cannot be resolved
    MainActivityPermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults);
}

让我们提高您的声誉,这是一个好问题。 - Leos Literak
2个回答

3

我是一名开发者。感谢您的使用。

  1. 检查您的IDE设置是否允许注解处理。
  2. 您说,“这是PermissionsDispatcher repo的分支”,但您的意思是什么?复制了该repo并运行了示例模块吗?

  1. 这个在IDE设置菜单中的哪里?
  2. 是的。
- charlesfranciscodev
谢谢,问题已经解决。示例现在可以在虚拟设备上运行。 - charlesfranciscodev
@charlesfranciscodev 我在1.5版本的工作室中遇到了同样的问题,我该如何生成这个帮助类,请帮帮我。 - Hardik Mehta

1

如此描述 https://github.com/hotchemi/PermissionsDispatcher#must

你需要在你的活动中添加@RuntimePermissions注释,以及至少在一个方法中添加@NeedsPermission注释。

在你的build.gradle中添加以下内容:

buildscript {
  dependencies {
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7'
  }
}

apply plugin: 'android-apt'

dependencies {
  compile 'com.github.hotchemi:permissionsdispatcher:1.2.1@aar'
  apt 'com.github.hotchemi:permissionsdispatcher-processor:1.2.1'
}

android-apt插件将负责注解处理。构建项目后,您应该能够使用生成的类。


这些注释已经在代码中了,这是 PermissionsDispatcher repo 的一个分支。当我运行应用程序时,我会收到以下错误:`Error:Failed to capture snapshot of input files for task 'mavenAndroidJavadocs' during up-to-date check. See stacktrace for details.
Could not normalize path for file 'C:\Users\dev1\AppData\Local\Android\sdk\platforms\android-4\android.jar;C:\Users\dev1\AppData\Local\Android\sdk\tools\support\annotations.jar'.`
- charlesfranciscodev
看起来你正在使用Maven?PermissionDispatcher库基于Gradle,并使用android-apt处理注释(请参见我的答案编辑)。 - woley
我在PermissionsDispatcher\build.gradle文件中添加了编辑中提到的代码行,但是我遇到了以下错误:The android or android-library plugin must be applied to the project。在以下代码行处崩溃:apply plugin: 'android-apt' - charlesfranciscodev
您需要使用gradle构建自己的项目(应用权限处理),当然要包含'android'或'android-library'。我不知道是否有类似于maven的android-apt,因此我建议您使用gradle来构建您的应用程序。 - woley
应该修改哪个build.gradle文件呢?
  1. PermissionsDispatcher\build.gradle
  2. PermissionsDispatcher\permissionsdispatcher\build.gradle
  3. PermissionsDispatcher\permissionsdispatcher-processor\build.gradle
  4. PermissionsDispatcher\permissionsdispatcher-sample\build.gradle
- charlesfranciscodev
使用示例时无需修改任何build.gradle文件。请参见上面的答案。无论如何,感谢您的帮助。 - charlesfranciscodev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接