代码之家  ›  专栏  ›  技术社区  ›  khateeb

React Native Error:重复的资源,在android版本APK的某些屏幕中出现的资产,在其他屏幕中没有出现

  •  1
  • khateeb  · 技术社区  · 7 年前

    3.2.0 compileSdkVersion 28.我正在运行以下命令:

    react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
    cd android && ./gradlew clean && ./gradlew assembleRelease && ./gradlew installRelease
    

    我的文件夹结构是:

    Folder structure

    package.json 是:

    {
      "name": "App",
      "version": "2.0.0",
      "private": true,
      "scripts": {
        "start": "node node_modules/react-native/local-cli/cli.js start",
        "test": "jest"
      },
      "dependencies": {
        "axios": "^0.18.0",
        "native-base": "^2.8.0",
        "prop-types": "^15.6.2",
        "qs": "^6.5.2",
        "react": "^16.5.2",
        "react-native": "0.57.0",
        "react-native-animatable": "^1.3.0",
        "react-native-animated-icons": "^1.0.5",
        "react-native-appsee": "^2.4.14",
        "react-native-blur": "^3.2.2",
        "react-native-cast-chrome": "1.0.0",
        "react-native-cast-ui": "1.0.0",
        "react-native-device-info": "^0.22.3",
        "react-native-dialog": "^5.1.0",
        "react-native-elements": "^0.19.1",
        "react-native-email": "^1.0.1",
        "react-native-fast-image": "^5.0.3",
        "react-native-fbsdk": "^0.8.0",
        "react-native-flurry-analytics": "^3.0.2",
        "react-native-gridview": "^0.1.2",
        "react-native-iap": "^2.2.1",
        "react-native-iphone-x-helper": "^1.0.3",
        "react-native-keyboard-aware-scroll-view": "^0.7.0",
        "react-native-kochava-tracker": "^1.0.0",
        "react-native-linear-gradient": "^2.4.0",
        "react-native-material-dropdown": "^0.11.1",
        "react-native-modal": "^6.5.0",
        "react-native-orientation": "^3.1.3",
        "react-native-photo-upload": "^1.3.0",
        "react-native-scrollable-tab-view": "^0.8.0",
        "react-native-snap-carousel": "^3.7.4",
        "react-native-tab-view": "^1.2.0",
        "react-native-underline-tabbar": "^1.3.6",
        "react-native-vector-icons": "^5.0.0",
        "react-native-video": "^3.2.1",
        "react-native-video-controls": "^2.2.3",
        "react-navigation": "^2.11.2",
        "react-navigation-backhandler": "^1.1.1",
        "react-redux": "^5.0.7",
        "redux": "^4.0.0",
        "redux-logger": "^3.0.6",
        "redux-thunk": "^2.3.0"
      },
      "devDependencies": {
        "@babel/plugin-external-helpers": "^7.0.0",
        "ajv": "^6.5.2",
        "babel-eslint": "^9.0.0",
        "babel-jest": "23.4.2",
        "babel-plugin-transform-remove-console": "^6.9.4",
        "eslint": "^5.3.0",
        "eslint-config-airbnb": "^17.1.0",
        "eslint-plugin-import": "^2.14.0",
        "eslint-plugin-jsx-a11y": "^6.1.1",
        "eslint-plugin-react": "^7.11.0",
        "jest": "23.4.2",
        "metro-react-native-babel-preset": "^0.45.4",
        "react-test-renderer": "16.4.1",
        "schedule": "^0.4.0"
      },
      "jest": {
        "preset": "react-native"
      }
    }
    

    在运行命令时,我在 Task :app:mergeReleaseResources FAILED 具有 Error: Duplicate resources

    但在运行发布版APK时,有些图像根本没有出现,而另一些则没有出现。此外,同样的图像在某些地方出现,而在其他地方却没有出现。从JS服务器运行调试应用程序时,这些问题都不会发生。这个问题在iOS中不会发生。

    如何解决这个问题?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Florin Dobre    7 年前

    根据RN 0.57变更日志:

    Android工具已经更新以匹配更新的配置 需求(SDK 27、gradle 4.4和support library 27);建筑 由于gradle脚本的原因,Android插件3.2不起作用,所以

    1) 试着根据RN更改日志设置

    com.android.tools.build:gradle:3.1.4 应该有用

    2) 尝试删除android构建文件夹并运行 ./gradlew assembleRelease 没有任何捆绑

    如果您仍然有问题,并且希望使用捆绑包,请尝试检查:

    React Native Android Duplicate file error when generating apk

    这些答案应该可以解决这个问题:

    https://stackoverflow.com/a/52750886/1979861

    https://stackoverflow.com/a/50876742/1979861

    https://github.com/react-native-community/react-native-releases/blob/master/CHANGELOG.md