Android requirepermission注释';仅指定一个值,anyOf或allOf';
正在尝试应用中解释的Android requirepermission注释';仅指定一个值,anyOf或allOf';,android,android-studio,android-support-library,android-lint,android-studio-2.2,Android,Android Studio,Android Support Library,Android Lint,Android Studio 2.2,正在尝试应用中解释的@requirepermission注释 示例显示 如果您需要一组权限中的至少一个,则可以使用anyOf属性: @RequiresPermission(anyOf = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}) public abstract Location getLastKnownLocation(String provid
@requirepermission
注释
示例显示
如果您需要一组权限中的至少一个,则可以使用anyOf属性:
@RequiresPermission(anyOf = {
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION})
public abstract Location getLastKnownLocation(String provider);
我尝试将其应用到我的代码中,该代码执行一些蓝牙扫描:
@RequiresPermission(anyOf = {
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION})
private void initiateConnectionProcess() {
startScanAndBroadcast();
}
这是一个错误
仅指定值中的一个,anyOf或allOf
我想可能startScanAndBroadcast()
有一个allOf
注释,如果递归地解决注释,可能会导致问题,但该方法根本没有注释
如果方法主体为空,则错误仍然存在
如果我没有列出权限,错误就会消失:
@RequiresPermission(anyOf = { })
private void initiateConnectionProcess() {
这里出了什么问题?更新:在Android Studio 2.2预览版3中解决 经过一些检查,这个错误似乎发生在AndroidStudio 2.2预览2中,而不是在AndroidStudio 2.1.1中 即使显示为错误,构建也会成功,并且注释工作正常 看来这是一个错误的过梁。
提交了一个bug报告。我想你现在已经明白了,但是你必须使用方括号而不是花括号 例如:
@RequiresPermission(anyOf = [ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION])
我使用Kotlin和最新版本的Android Studio。我看到一些人提到它是固定的,但据我所知它不是固定的
Android Studio版本
花括号
方括号
如果您还没有这样做,因为工具团队对错误报告的响应相对较快。@commonware谢谢。在这样做之前,我一直在等待一些“可以/不能复制”的反馈。这似乎是一个错误,但我不确定YetWiw,我可以确认AS 2.1.1对您的示例代码没有问题。@Commonware供您参考,团队从未对我的错误报告作出响应,但它已在studio 2.2预览3中解决:-)