react native expo app ACCESS_BACKGROUND_LOCATION 需要添加到清单中 问题
react native expo app ACCESS_BACKGROUND_LOCATION needs to be added to the manifest Problem
我正在使用托管流程构建一个 expo 应用程序(因此我无法直接访问 android 中的清单)并且我确实阅读甚至记住了文档并且它说我需要在我的 app.config.json 文件中添加对 android.permissions 的权限,我的操作如下:
"android": {
"permissions": [
"ACCESS_BACKGROUND_LOCATION",
"ACCESS_COARSE_LOCATION",
"ACCESS_FINE_LOCATION"
]
},
它仍然告诉我同样的事情,尽管根据文档,这是我需要做的唯一事情来包括许可。但出于某种原因,android 设备忽略了这一点,或者 expo 没有将其添加到他们在后台构建的清单中,或者出于某种原因,应用程序的行为就像我没有将这些行添加到配置文件。
我尝试过的事情:
我尝试了多种方法,包括删除精细位置权限(因为有人说新的 android 更新只接受一个位置权限;精细位置或背景位置)。那当然是行不通的。
构建我的应用程序的独立版本(因为有人说 Expo go 在 android 上不允许后台定位)
我在 github 和 expo 论坛上看到了关于这个问题的多个问题,最引人注目的是:
1- issue raised on github
2- issue raised on expo forums
我当然也看了下面的内容
expo permissions docs
android config docs on expo
我用来请求权限的代码:
try {
// at the following line it just breaks and jumps to the catch block
const { status } = await Location.requestBackgroundPermissionsAsync();
console.log(
"@@@@@@@@@@@@@@@@@@@@@@ requestBackgroundPermissionsAsync @@@@@@@@@@@@@@@@@@@@@@"
);
console.log(status);
console.log(
"@@@@@@@@@@@@@@@@@@@@@@ requestBackgroundPermissionsAsync @@@@@@@@@@@@@@@@@@@@@@"
);
if (status === "granted") // ... the rest of the code
} catch (error) {
console.log(error);
}
代码在这一行因错误而中断,并告诉我以下内容:
You need to add `ACCESS_BACKGROUND_LOCATION` to the AndroidManifest.
at node_modules/react-native/Libraries/BatchedBridge/NativeModules.js:103:50 in promiseMethodWrapper
at node_modules/@unimodules/react-native-adapter/build/NativeModulesProxy.native.js:15:23 in moduleName.methodInfo.name
at node_modules/expo-location/build/Location.js:142:7 in requestBackgroundPermissionsAsync
at node_modules/expo-location/build/Location.js:142:22 in requestBackgroundPermissionsAsync
at screens/home/GoToLocation.tsx:156:25 in onGoToLocation
at http://192.168.8.102:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&minify=false:191029:39 in onGoToLocation
at node_modules/react-native/Libraries/Pressability/Pressability.js:691:17 in _performTransitionSideEffects
at node_modules/react-native/Libraries/Pressability/Pressability.js:628:6 in _receiveSignal
at node_modules/react-native/Libraries/Pressability/Pressability.js:524:8 in responderEventHandlers.onResponderRelease
问题是:这是否像 expo 中的错误,他们需要修复它还是我做错了什么?如果我做错了什么。请帮忙。
与它搏斗了几天后,结果证明是新版本的 expo go app 2.22.3 中的一个错误,它根本不读取或注册这种类型的权限。所以我刚刚降级到 2.21.5 版本,它工作得很好。
世博会的一位维护者在 github
上打开的问题上证实了这一点
无论如何,他们似乎正在努力,但在修复之前,如果您正在使用 android.
进行测试,请使用旧版本的应用程序
我正在使用托管流程构建一个 expo 应用程序(因此我无法直接访问 android 中的清单)并且我确实阅读甚至记住了文档并且它说我需要在我的 app.config.json 文件中添加对 android.permissions 的权限,我的操作如下:
"android": {
"permissions": [
"ACCESS_BACKGROUND_LOCATION",
"ACCESS_COARSE_LOCATION",
"ACCESS_FINE_LOCATION"
]
},
它仍然告诉我同样的事情,尽管根据文档,这是我需要做的唯一事情来包括许可。但出于某种原因,android 设备忽略了这一点,或者 expo 没有将其添加到他们在后台构建的清单中,或者出于某种原因,应用程序的行为就像我没有将这些行添加到配置文件。
我尝试过的事情:
我尝试了多种方法,包括删除精细位置权限(因为有人说新的 android 更新只接受一个位置权限;精细位置或背景位置)。那当然是行不通的。
构建我的应用程序的独立版本(因为有人说 Expo go 在 android 上不允许后台定位)
我在 github 和 expo 论坛上看到了关于这个问题的多个问题,最引人注目的是:
1- issue raised on github
2- issue raised on expo forums
我当然也看了下面的内容
expo permissions docs
android config docs on expo
我用来请求权限的代码:
try {
// at the following line it just breaks and jumps to the catch block
const { status } = await Location.requestBackgroundPermissionsAsync();
console.log(
"@@@@@@@@@@@@@@@@@@@@@@ requestBackgroundPermissionsAsync @@@@@@@@@@@@@@@@@@@@@@"
);
console.log(status);
console.log(
"@@@@@@@@@@@@@@@@@@@@@@ requestBackgroundPermissionsAsync @@@@@@@@@@@@@@@@@@@@@@"
);
if (status === "granted") // ... the rest of the code
} catch (error) {
console.log(error);
}
代码在这一行因错误而中断,并告诉我以下内容:
You need to add `ACCESS_BACKGROUND_LOCATION` to the AndroidManifest.
at node_modules/react-native/Libraries/BatchedBridge/NativeModules.js:103:50 in promiseMethodWrapper
at node_modules/@unimodules/react-native-adapter/build/NativeModulesProxy.native.js:15:23 in moduleName.methodInfo.name
at node_modules/expo-location/build/Location.js:142:7 in requestBackgroundPermissionsAsync
at node_modules/expo-location/build/Location.js:142:22 in requestBackgroundPermissionsAsync
at screens/home/GoToLocation.tsx:156:25 in onGoToLocation
at http://192.168.8.102:19000/node_modules/expo/AppEntry.bundle?platform=android&dev=true&hot=false&minify=false:191029:39 in onGoToLocation
at node_modules/react-native/Libraries/Pressability/Pressability.js:691:17 in _performTransitionSideEffects
at node_modules/react-native/Libraries/Pressability/Pressability.js:628:6 in _receiveSignal
at node_modules/react-native/Libraries/Pressability/Pressability.js:524:8 in responderEventHandlers.onResponderRelease
问题是:这是否像 expo 中的错误,他们需要修复它还是我做错了什么?如果我做错了什么。请帮忙。
与它搏斗了几天后,结果证明是新版本的 expo go app 2.22.3 中的一个错误,它根本不读取或注册这种类型的权限。所以我刚刚降级到 2.21.5 版本,它工作得很好。
世博会的一位维护者在 github
上打开的问题上证实了这一点无论如何,他们似乎正在努力,但在修复之前,如果您正在使用 android.
进行测试,请使用旧版本的应用程序