我正在使用expo构建一个react native项目。我在Windows上,因此我启用WSL并从Microsoft商店安装ubuntu。接下来,我运行expo build:android。我收到以下错误,
Your project must have an Android package set in app.json.
所以我看了expos教程页面,上面说要添加,
"android": {
"package": "com.yourcompany.yourappname"
}
我将其添加到app.json
文件中,并得到相同的错误。我根本不知道为什么错误不会消失,因为我已经查看了教程页面和代码,并且显然拥有所有必填字段。
这是我一直在查看的教程页面:https://docs.expo.io/versions/latest/distribution/building-standalone-apps/
无论如何,这是我的app.json文件
{
"expo": {
"name": "First React App",
"slug": "FirstReactNativeApp",
"privacy": "public",
"sdkVersion": "35.0.0",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"ios": {
"bundleIdentifier": "com.yourcompany.yourappname",
"supportsTablet": true,
},
"android": {
"package": "com.yourcompany.yourappname",
},
"platforms": [
"ios",
"android",
"web"
],
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
"**/*"
],
}
}
答案 0 :(得分:4)
对于任何访问此页面的人,请将以下内容添加到您的app.json中。
"android": {
"package": "com.yourcompany.yourappname",
"versionCode": 1
}
答案 1 :(得分:2)
我遇到同样的问题后才来到这里。原来我的mvn clean instal package
mvn test-compile
mvn test
mvn build
没有从app.config.js
传递配置。
我通过更改来修复它:
app.json
收件人:
export default {
extra: {
[...]
},
};
答案 2 :(得分:1)
这对我有用,您可以尝试
{
"expo": {
"name": "kd-guess-number",
"slug": "kd-guess-number",
"sdkVersion": "37.0.0",
"privacy": "public",
"platforms": [
"ios",
"android",
"web"
],
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": true
},
"description": "",
"android": {
"package": "com.yourcompany.yourappname",
"versionCode": 1
}
}
}
您应该在末尾添加它(请参阅上面的代码以供参考)
"android": {
"package": "com.yourcompany.yourappname",
"versionCode": 1
}
答案 3 :(得分:1)
我知道我可能为此迟到了,但是我至少发现了我自己的问题,因为Expo的create-react-native-app可能会构建与实际想要的app.json不同的东西(我可能错了)。我创建了一个新的博览会应用程序,并进行了比较。我发现json的结构已更改,android
应该嵌套在expo
内,如下所示。顺便说一句,这是我在stackoverflow中的第一个答案。
正确:
{
"expo": {
"name": "youappname",
"android": {
"package": "com.web.app",
"versionCode": 1
}
}
}
答案 4 :(得分:0)
就我而言,我已在app.json的顶层声明了“ android”属性。相反,它应该在“ expo”属性中作为子项列出。 h!