【问题标题】:APK cannot installAPK 无法安装
【发布时间】:2017-08-10 21:53:20
【问题描述】:

我们的应用程序,曾经可以工作。上次更新是在 2 周半前发布的,当时 apk 文件创建并正常工作。

最近2天我们尝试创建apk(签名或未出现问题),Android Studio没有抛出错误,但是当apk要安装到手机上时,应用程序失败安装时出现错误“未安装应用程序”

此外,Android Monitor 中还会出现以下错误。

Class not found when unmarshalling: com.android.packageinstaller.InstallFlowAnalytics
                                           java.lang.ClassNotFoundException: com.android.packageinstaller.InstallFlowAnalytics
                                               at java.lang.Class.classForName(Native Method)
                                               at java.lang.Class.forName(Class.java:324)
                                               at android.os.Parcel.readParcelableCreator(Parcel.java:2404)
                                               at android.os.Parcel.readParcelable(Parcel.java:2358)
                                               at android.os.Parcel.readValue(Parcel.java:2264)
                                               at android.os.Parcel.readArrayMapInternal(Parcel.java:2614)
                                               at android.os.BaseBundle.unparcel(BaseBundle.java:221)
                                               at android.os.BaseBundle.getString(BaseBundle.java:920)
                                               at android.content.Intent.getStringExtra(Intent.java:6183)
                                               at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:2706)
                                               at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:2171)
                                               at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6359)
                                               at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:6127)
                                               at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:170)
                                               at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3999)
                                               at android.os.Binder.execTransact(Binder.java:453)
                                            Caused by: java.lang.ClassNotFoundException: com.android.packageinstaller.InstallFlowAnalytics
                                               at java.lang.Class.classForName(Native Method)
                                               at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                                               at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                                               at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                               at java.lang.Class.classForName(Native Method) 
                                               at java.lang.Class.forName(Class.java:324) 
                                               at android.os.Parcel.readParcelableCreator(Parcel.java:2404) 
                                               at android.os.Parcel.readParcelable(Parcel.java:2358) 
                                               at android.os.Parcel.readValue(Parcel.java:2264) 
                                               at android.os.Parcel.readArrayMapInternal(Parcel.java:2614) 
                                               at android.os.BaseBundle.unparcel(BaseBundle.java:221) 
                                               at android.os.BaseBundle.getString(BaseBundle.java:920) 
                                               at android.content.Intent.getStringExtra(Intent.java:6183) 
                                               at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:2706) 
                                               at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:2171) 
                                               at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6359) 
                                               at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:6127) 
                                               at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:170) 
                                               at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3999) 
                                               at android.os.Binder.execTransact(Binder.java:453) 
                                            Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available 

有人遇到过类似的问题吗?

提前谢谢你。

【问题讨论】:

  • 你在使用 Android Studio 2.3 来签署 apk 吗?
  • 是的,据我所知,Android Studio 在旧 apk 和新 apk 之间的中间时间进行了更新。这是兼容性问题吗?我们需要配置其他东西吗?
  • 我在发布 apk 时遇到问题,我无法安装它,如果检查了签名 v2,就会发生这种情况,所以如果您检查了 v2,请尝试取消选中它并仅使用 v1(jar 签名)。
  • @AtefHares 你应该回答这个问题。它在调试中也对我有用。另外,here is a post with more information on the differences
  • @codeMagic 完成!很高兴我也能帮助你:)

标签: android android-studio-2.3


【解决方案1】:

我之前在发布 apk 时遇到过类似的问题,我无法安装它,如果选中了 signature v2,就会发生这种情况。

不幸的是,我不确定它为什么会导致这些问题!无论如何,如果您选中了 v2,请尝试取消选中它并仅使用 v1(jar 签名)。


也感谢@codeMagic 为我们提供this STO 线程,了解两种类型之间的差异。

【讨论】:

    【解决方案2】:

    我修复了上面提到的相同问题,仅应用 v1 签名并关闭 v2 签名,此外,可以通过 gradle 构建文件通过设置 v1SigningEnabledv2SigningEnabled 的值来完成,如下所示:

    signingConfigs {
        staging {
            keyAlias *****
            keyPassword *****
            storeFile file(*****)
            storePassword *****
            v1SigningEnabled true
            v2SigningEnabled false
        }
        release {
            keyAlias *****
            keyPassword *****
            storeFile file(*****)
            storePassword *****
            v1SigningEnabled true
            v2SigningEnabled false
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-01
      • 1970-01-01
      • 2014-12-21
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多