最终签名的 apk 输出不适用于所有 android 设备

Posted

技术标签:

【中文标题】最终签名的 apk 输出不适用于所有 android 设备【英文标题】:Final signed apk output is not working on all android devices 【发布时间】:2019-04-17 15:54:21 【问题描述】:

我刚刚从我在 android Studio 中的代码中获得了一个签名版本的输出 apk。 输出如何无法在所有 android 设备上运行!

直到现在,正如我测试的那样: 它运行良好,可以安装在 Sony Z2 (android 6.0.1)、Samsung J5 (android 6.0.1)、j7 (android 6.0.1) 甚至 S10+ (android 9) 上

但是当我想在 Sony Z (android 5.1) 上安装它时,它说包已损坏! 或者将apk包发送到华为Y5设备(android 6.0,EMUI 4.1)后,手机将文件表现为ZIP,并显示apk文件的包含而不是安装它。

我想将我的输出类型从 Type 1 或 2 更改,但仍然有相同的结果

build.gradle(模块:app)


android 
    compileSdkVersion 27
    defaultConfig 
        applicationId "ir.eqtech.transport"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    
    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    

build.gradle(项目)

buildscript 

    repositories 
        google()
        jcenter()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:3.3.2'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    


allprojects 
    repositories 
        google()
        jcenter()
    


task clean(type: Delete) 
    delete rootProject.buildDir

【问题讨论】:

【参考方案1】:

应使用 Google Play 商店将最终签名的 APK(发布版本)安装到设备上,而不是像调试版本那样正常安装。

您应该获得一个 Google Play 控制台帐户才能上传您签名的 APK,然后允许其他客户端安装它。

【讨论】:

你是对的。我只是想知道为什么它在不同的设备上表现不同。在最终发布之前,我应该如何确保这个应用程序能够安装在所有兼容的设备上并且运行良好? 我认为测试是这种情况的解决方案。这可以由您自己手动完成,也可以通过自动化解决方案完成。请注意,有像 [genymotion.com/cloud/] 这样的自动化解决方案。此解决方案需要花钱,但对兼容性测试很有用。 在得知我的应用程序无法在某些设备上运行后,比如现在,我该怎么办?现在,我知道我的最终 APK 无法在某些设备上运行,我想知道我应该怎么做才能覆盖这些设备。 对您的应用进行良好测试后,您应该将其部署到 Play 商店。有一些很好的方法可以实现检测系统,以便在部署后在不同设备上发生崩溃时向您发出警报。一旦发生崩溃,您会收到一条通知消息,以便您进行修复并将其再次部署到存储中。部署完成后,所有用户都会收到更新的版本。

以上是关于最终签名的 apk 输出不适用于所有 android 设备的主要内容,如果未能解决你的问题,请参考以下文章

proguard applymapping - mapping.txt 的更改不适用于下一个构建签名的 apk

Google API 密钥不适用于 Android

Firebase 动态链接不适用于发布版本

对cordova打包的apk文件进行签名

S3签名的网址不适用于ajax

Woocommerce API Post 方法不适用于通过 POSTMAN 的 HTTP 请求 - 获取无效签名