尽管我在app.json中设置了一个android包,但出现错误“您的项目必须在app.json中设置了一个Android包”

时间:2019-10-12 23:36:03

标签: windows react-native expo

我正在使用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": [
      "**/*"
    ],
  }
}

5 个答案:

答案 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!