1

I am trying to add a dynamic feature for android in our codebase. On building with react-native run-android, I get the following error in metro:

Failed to construct transformer:  Error: Cannot create a string longer than 0x1fffffe8 characters
    at Object.slice (buffer.js:605:37)
    at Buffer.toString (buffer.js:804:14)
    at Object.readFileSync (fs.js:438:41)
    at getContent (/Users/username/repo_name/node_modules/jest-haste-map/build/worker.js:129:22)
    at Object.worker (/Users/username/repo_name/node_modules/jest-haste-map/build/worker.js:157:23)
    at execFunction (/Users/username/repo_name/node_modules/jest-worker/build/workers/processChild.js:145:17)
    at execHelper (/Users/username/repo_name/node_modules/jest-worker/build/workers/processChild.js:124:5)
    at execMethod (/Users/username/repo_name/node_modules/jest-worker/build/workers/processChild.js:128:5)
    at process.messageListener (/Users/username/repo_name/node_modules/jest-worker/build/workers/processChild.js:46:7)
    at process.emit (events.js:375:28) {
  type: 'Error',
  code: 'ERR_STRING_TOO_LONG'

The file that is causing this error is android/app/build/intermediates/module_bundle/debug/base.zip, whose size is exceeding 512 MB. Removing a few ABI filters in app/build.gradle decreases the size of this file and gets rid of the error, but is there a better way to resolve this?

1 Answers1

0

I'm not sure if it's a better way, but I added the file to Metro bundler resolver blockList:

module.exports = (async () => {
  const {
    resolver: { sourceExts, assetExts },
  } = await getDefaultConfig()
  return {
    resolver: {
      ...
      blockList: [/base.zip/],
      ...
    },
  }
})()
jakubkoci
  • 480
  • 5
  • 16