Android 使用Firebase应用程序分发服务导致应用程序未安装错误
我正在使用Android平台的。对于自动分发,我已经按照中提到的步骤设置了Gradle文件。安装和身份验证成功。发行也很成功。但一旦我使用Firebase的Android应用程序测试程序下载应用程序,就会导致应用程序未安装错误。这既适用于调试,也适用于发行版变体 我尝试在禁用Google play protect后安装该应用程序,但问题依然存在。有人能帮我一下吗Android 使用Firebase应用程序分发服务导致应用程序未安装错误,android,firebase,firebase-app-distribution,Android,Firebase,Firebase App Distribution,我正在使用Android平台的。对于自动分发,我已经按照中提到的步骤设置了Gradle文件。安装和身份验证成功。发行也很成功。但一旦我使用Firebase的Android应用程序测试程序下载应用程序,就会导致应用程序未安装错误。这既适用于调试,也适用于发行版变体 我尝试在禁用Google play protect后安装该应用程序,但问题依然存在。有人能帮我一下吗 当我们的应用程序的生产版本在相关设备上可用时,我们遇到了这个错误 只需卸载生产应用程序就很有魅力——我们可以安装我们的test/
当我们的应用程序的生产版本在相关设备上可用时,我们遇到了这个错误
只需卸载生产应用程序就很有魅力——我们可以安装我们的test/dev/两个应用程序中的任何一个,而不会出现任何问题 我也有同样的问题。因此,我检查了日志,在安装失败时发现:
2019-10-07 10:20:29.941 771-2406/? E/ResolverController: No valid NAT64 prefix (114, <unspecified>/0)
2019-10-07 10:20:30.740 1278-1537/? W/NativeHelper: Failure copying native libraries [errorCode=-113]
2019-10-07 10:20:30.740 1278-1537/? E/PackageInstallerSession: Commit of session 392193568 failed: Failed to extract native libraries, res=-113
2019-10-07 10:20:29.941771-2406/?E/ResolverController:没有有效的NAT64前缀(114,/0)
2019-10-07 10:20:30.740 1278-1537/? W/NativeHelper:复制本机库失败[errorCode=-113]
2019-10-07 10:20:30.740 1278-1537/? E/PackageInstallerSession:提交会话392193568失败:无法提取本机库,res=-113
所以我认为我使用的APK文件一定有问题。我按下Build->Build APK(s),并在完成后将该文件上传到Firebase。我不确定我第一次是否真的完成了构建过程,或者只是直接从构建文件夹中获取了apk。它可能已经损坏或只是错误的一个。我建议您只需再执行一次这些步骤,并确保您构建了正确的步骤并将其上载。请确保您为每个变体提供了一个
signingConfigs
将以下代码添加到应用程序的build.gradle
的android
标记中:
signingConfigs {
config {
keyAlias '<YOUR_ALIES>'
keyPassword '<YOUR_KEY_PASSWORD>'
storeFile file('<YOUR_KEY_PATH>') // Usually use '../keystore.key'
storePassword '<YOUR_STORE_PASSWORD>'
}
}
希望这有帮助。这是一个随机错误(显然)
对我有效的方法是手动删除
app
模块中的build
文件夹(简单地清理项目不会删除所有编译的代码),再次构建APK,在FAD上重新上传,然后APK成功安装。我与一位客户遇到了这个问题,结果她需要删除手机上的应用程序版本,才能使其正常工作。(这是以前安装的非Firebase版本)在尝试了所有其他解决方案后,我的问题是没有足够的可用存储空间-在这种情况下,软件包安装程序也会给出一个通用的“安装失败”。希望这能为其他人节省我浪费的时间。消息“安装失败”或“应用程序未安装”的原因可能会有所不同,因为这是安装应用程序时唯一可能出现的错误。
我同意这是没有帮助的
但是,在大多数情况下,这是由于签名问题引起的。
以下是一些解决方案:
android {
...
defaultConfig {...}
signingConfigs {
release {
storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
最后但并非最不重要的一点是,确保您的手机有足够的存储空间来安装应用程序,并且在设置中选中了“从未知来源安装”选项。发生这种情况的原因是您生成的APK可能与所有移动CPU架构不兼容。说到CPU架构,我的意思是一些APK仅与ARM或x86 Android设备兼容。因此,在
/android/app/build.gradle
中的app-level-gradle文件中有一个名为universalApk
的标记,该标记必须设置为true,以便当您从android studio或CLI生成APK时,它将为您生成与所有CPU架构兼容的通用APK,因此,多个Android设备,无论Android设备支持哪种CPU体系结构
参数universalApk
可以通过前面提到的build.gradle
文件在splits JSON对象中找到,如下所示:
拆分{
阿比{
重置()
启用EnableSeperCPU体系结构
universalApk true//如果为true,还生成一个通用APK
包括“armeabi-v7a”、“x86”、“arm64-v8a”、“x86_64”
}
}
至于我的案例,当我执行/gradlew AppDistributionPloaddebug
时,它只是抓取它找到的任何APK文件并上传。换句话说,它只是上传了恰巧在那里的应用程序的一部分,比它应该的要小得多
/gradlew assembleDebug/gradlew AppDistributionPloaddebug解决了这个问题。我遇到了这个问题。这可能是因为手机的内部存储空间不足。
我尝试释放一些空间,然后安装了应用程序。这对我来说很有效。我投票将这个问题作为离题题来结束,因为它应该直接提交给Firebase支持部门@当这项服务昨天发布时,可能会有很多开发者面临同样的问题。我从事安卓应用程序开发已经4年了,我对应用程序的所有其他方面都做得很好。该应用程序没有安装在任何版本的多个设备上,这是令人担忧的。此外,Firebase团队成员的回答将帮助所有面临此问题的开发人员。我请求你不要关闭这个问题。谢谢你的反馈。我听了你的建议:猜一猜
android {
...
defaultConfig {...}
signingConfigs {
release {
storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}