处理 React Native 本地打包慢的问题
道者以诚而入,以默而守,以柔而用。 用诚似愚,用默似讷,用柔似拙。 夫如是,则可与忘形,可与忘我,可与忘忘。
1、代理超时
最近本地构建安卓安装包的时候,发现明明有 maven 镜像,下载时多次重试却还是超时:
* What went wrong:
Execution failed for task ':app:checkReleaseAarMetadata'.
> Could not resolve all files for configuration ':app:releaseRuntimeClasspath'.
> Failed to transform react-android-0.76.7-release.aar (com.facebook.react:react-android:0.76.7) to match attributes {artifactType=android-aar-metadata, com.android.build.api.attributes.BuildTypeAttr=release, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
> Could not download react-android-0.76.7-release.aar (com.facebook.react:react-android:0.76.7)
> Could not get resource 'https://repo.huaweicloud.com/repository/maven/com/facebook/react/react-android/0.76.7/react-android-0.76.7-release.aar'.
> Premature end of Content-Length delimited message body (expected: 128,746,599; received: 28,965,871)
> Failed to transform hermes-android-0.76.7-release.aar (com.facebook.react:hermes-android:0.76.7) to match attributes {artifactType=android-aar-metadata, com.android.build.api.attributes.BuildTypeAttr=release, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
> Could not download hermes-android-0.76.7-release.aar (com.facebook.react:hermes-android:0.76.7)
> Could not get resource 'https://repo.huaweicloud.com/repository/maven/com/facebook/react/hermes-android/0.76.7/hermes-android-0.76.7-release.aar'.
> Premature end of Content-Length delimited message body (expected: 65,754,610; received: 29,784,834)
原来是镜像也走了代理,工具没有绕开国内地址
全局 gradle 配置,位置 %userprofile%\.gradle\gradle.properties
以及 项目目录位置 android\gradle.properties 里边也有一块:
# systemProp.http.proxyHost=192.168.1.2
# systemProp.http.proxyPort=6789
# systemProp.https.proxyHost=192.168.1.2
# systemProp.https.proxyPort=6789
要么先注释掉,要么配置好代理工具分流。
然后
%userprofile%\.gradle\init.gradle
这里是配置镜像的,比如使用 阿里云 的镜像。
2、清理掉预生成的文件
先更新到最新的 Expo SDK ,然后更新依赖
npx expo install expo@latest
npx expo install --fix
更新依赖之后需要清理掉 Android 目录:
npx expo install --check
npx expo prebuild --clean
因为上一次 prebuild 写入的 kotlinVersion 和更新 Expo 的 依赖不一致。
Task :expo-modules-core:compileReleaseKotlin e: This version (1.5.14) of the Compose Compiler requires Kotlin version 1.9.24 but you appear to be using Kotlin version 1.9.25 which is not known to be compatible.