我试过在我的应用程序中使用它,但无法编译。 我尝试在 pubspec.yaml 中使用“geolocator:^5.3.1”,但由于出现这些错误,我下载了源代码以及包“location_permissions”的源代码,当我直接打开应用程序并运行示例时编译没有问题. 但是当我将它添加到我的 Android 应用程序中时,我得到了这个。
使用 location_permissions 包的某种问题。
F:_WORK_FLUTTERflutter-permission-plugins-developpackageslocation_permissionsandroidsrcmainjavacombaseflowlocation_permissionsLocationPermissionsPlugin.java:284:错误:找不到符号
|| (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && permission.equals(Manifest.permission.ACCESS_BACKGROUND_LOCATION));
^
符号:变量 Q
位置:类 VERSION_CODES
F:_WORK_FLUTTERflutter-permission-plugins-developpackageslocation_permissionsandroidsrcmainjavacombaseflowlocation_permissionsLocationPermissionsPlugin.java:284:错误:找不到符号
|| (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && permission.equals(Manifest.permission.ACCESS_BACKGROUND_LOCATION));
^
符号:变量 ACCESS_BACKGROUND_LOCATION
地点:班级权限
F:_WORK_FLUTTERflutter-permission-plugins-developpackageslocation_permissionsandroidsrcmainjavacombaseflowlocation_permissionsLocationPermissionsPlugin.java:310:错误:找不到符号
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && hasPermissionInManifest(Manifest.permission.ACCESS_BACKGROUND_LOCATION, context)) {
^
符号:变量 Q
位置:类 VERSION_CODES
改变了我的 build.gradle
安卓 {
compileSdkVersion 29
我正在使用 AndroidX
但同样的错误。
我已将以下代码放入 root build.gradle 中:
ext {
compileSdkVersion = 29
}
subprojects { subproject ->
afterEvaluate{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
}
}
}
}
在应用程序 build.gradle 中:
android {
compileSdkVersion rootProject.ext.compileSdkVersion
}
它对我有用!
分机{
compileSdkVersion = 29
}子项目{子项目->
评估后{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
安卓 {
compileSdkVersion rootProject.ext.compileSdkVersion
}
}
}
}
也为我工作! 谢谢!
关闭这个问题,因为@MigoTiti似乎已经提供了解决方案并且没有收到其他反馈。 @MigoTiti感谢您的贡献,也感谢@MarcioAlexandroni确认它有效。
最有用的评论
我已将以下代码放入 root build.gradle 中:
在应用程序 build.gradle 中:
它对我有用!