Appcenter构建React Native安卓包成功后设备无法安装问题求助
问题描述
我在Appcenter中配置了React Native应用的构建与分发流程,此前运行一切正常,某次构建突然报错失败,错误日志如下:
> Task :app:stripReleaseDebugSymbols FAILED Support for ANDROID_NDK_HOME is deprecated and will be removed in the future. Use android.ndkVersion in build.gradle instead. > Task :app:mergeExtDexRelease FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:stripReleaseDebugSymbols'. > No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
我参照方案修改了build.gradle配置如下:
buildscript { ext { ndkVersion = "20.1.5948944" } dependencies { classpath("com.android.tools.build:gradle:4.1.0") }
同时修改gradle-wrapper.properties为:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
修改后构建可以正常成功,但分发的应用在设备上安装时提示「App Not Installed」错误,尝试多个版本均未解决。
解决方案
- 检查签名配置:在
build.gradle的android块下确认signingConfigs已正确配置签名文件信息,同时在buildTypes.release中开启双签名校验,配置如下:
android { signingConfigs { release { storeFile file("你的签名文件路径") storePassword "签名存储密码" keyAlias "签名别名" keyPassword "签名密钥密码" v1SigningEnabled true // 兼容低版本Android v2SigningEnabled true // 适配Android 7.0及以上版本 } } buildTypes { release { signingConfig signingConfigs.release // 其余原有配置保持不变 } } }
同时确认Appcenter的构建配置中已开启正确的签名选项,未使用自动生成的测试签名。
- 检查ABI过滤配置:在
build.gradle的defaultConfig块下确认ndk.abiFilters包含目标设备对应的ABI架构,示例配置如下:
defaultConfig { ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' // 根据适配需求添加x86、x86_64等架构 } }
若只配置了64位架构,32位设备安装时会出现安装失败的问题。
- 排查设备侧冲突:先卸载设备上同包名的旧版应用,再重新安装新包测试。如果旧应用签名和新包签名不一致,会直接触发安装失败。
- 本地校验安装包有效性:将Appcenter构建输出的安装包下载到本地,使用
adb install 安装包路径命令执行安装,根据命令行返回的具体错误码定位问题:- 若返回
INSTALL_FAILED_UPDATE_INCOMPATIBLE:确认是签名不一致问题,统一签名配置即可 - 若返回
INSTALL_FAILED_NO_MATCHING_ABIS:确认是架构不匹配问题,补充对应ABI过滤即可 - 若返回
INSTALL_FAILED_INVALID_APK:确认是安装包损坏,检查构建流程中的压缩、打包配置是否正常
- 若返回
内容的提问来源于stack exchange,提问作者Prakash Loganathan
相关产品推荐
相关产品推荐

