React Native打包APK报错:无法找到入口文件index.js
我之前也踩过一模一样的坑!用Expo跑应用完全正常,但执行react-native eject之后,用Gradle打包APK就一直报找不到index.js的错误,哪怕是官方模板创建的项目也逃不过。下面是我亲测有效的几个解决办法,你可以挨个试试:
检查index.js的存在与路径
先确认项目根目录下确实有index.js文件,别不小心把它改成了index.android.js或者移到了子文件夹里。Gradle打包时默认从项目根目录读取这个入口文件,路径错了肯定找不到。配置package.json的main字段
打开项目根目录的package.json,看看有没有"main": "index.js"这一行。如果没有就手动加上,要是已经有了,确认它指向的路径是正确的——Gradle会参考这个字段定位入口文件,这个配置错了也会导致找不到。清理Gradle缓存后重新构建
有时候缓存会搞出莫名其妙的问题,你可以在android目录下执行这两条命令:./gradlew clean ./gradlew assembleRelease先清空缓存再重新打包,我当时就是这么解决的!
检查android/app/build.gradle的React配置
打开android/app/build.gradle,找到类似这样的配置段:project.ext.react = [ entryFile: "index.js" ]确认
entryFile的值是index.js,如果不是的话改成它就行。确认app.json的合法性
你已经添加了name和displayName,还要确保name字段只包含小写字母、数字和下划线,不能有特殊字符或者大写字母——这个字段不合法也可能间接影响打包时的文件查找逻辑。
内容的提问来源于stack exchange,提问作者John Leuenhagen

