升级Gradle至2.2后执行react-native run-android报错:无法读取packageName
react-native run-android无法读取packageName的问题 我之前处理过类似的问题,Gradle插件升级到2.2+后,React Native的构建校验会变得更严格,很容易因为配置不匹配触发这个错误。结合你给出的AndroidManifest.xml内容,给你几个针对性的解决方案:
确保
build.gradle的applicationId与Manifest的package完全一致
Gradle 2.2+开始用applicationId来管理应用包名,哪怕Manifest里已经写了package,如果build.gradle没配置或者两者不匹配,就会出现读取失败的问题。打开android/app/build.gradle,在defaultConfig块里添加或修正applicationId:defaultConfig { applicationId "com.test3" // 和你Manifest里的package值保持完全一致 minSdkVersion ... targetSdkVersion ... versionCode ... versionName ... }验证Manifest文件的路径与完整性
报错提示的路径是D:\projects\test3\android\src\main\AndroidManifest.xml,先确认这个路径下的文件确实存在,再检查文件有没有语法错误——你的代码看起来标签闭合是正常的,但可以排查下是否有多余的空格或特殊字符干扰解析。另外Windows系统下注意路径大小写(虽然系统不区分,但Gradle偶尔会出现识别偏差)。清理Gradle缓存后重新构建
缓存损坏也可能导致这种读取异常,执行以下命令清理缓存再重新运行项目:cd android gradlew clean cd .. react-native run-android检查React Native与Gradle插件的兼容性
Gradle 2.2可能和旧版React Native不兼容,你可以调整Gradle插件版本到React Native官方推荐的范围。打开android/build.gradle,修改dependencies中的Gradle插件版本:dependencies { classpath 'com.android.tools.build:gradle:3.1.4' // 这个版本适配大多数React Native 0.50+版本 // 其他依赖... }同时记得同步更新
gradle/wrapper/gradle-wrapper.properties里的Gradle版本,比如对应3.1.4插件的Gradle版本可以用4.4:distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
建议先从第一个方案开始尝试,这是最常见的触发原因。
内容的提问来源于stack exchange,提问作者Amir Hossein

