APK无法安装

时间:2017-03-19 17:27:21

标签: android android-studio-2.3

我们的应用程序曾经工作过。最新更新发布于两个半星期前,当apk文件创建并正常工作。

我们尝试创建apk的最后2天(已签名或未出现问题),Android Studio没有引发任何错误,但是当手机上安装apk时,应用程序无法安装错误“App not Installed”

此外,Android监视器中出现以下错误。

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 

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

提前谢谢。

2 个答案:

答案 0 :(得分:7)

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

不幸的是,我不确定为什么会导致这样的问题!无论如何你检查v2尝试取消选中它并只使用v1(jar签名)。

还要感谢@codeMagic向我们提供有关两种类型之间差异的this STO主题!

答案 1 :(得分:1)

我通过仅应用v1签名并关闭v2签名修复了上述相同内容,而且可以通过gradle构建文件按v1SigningEnabled&的设置值来完成。 v2SigningEnabled如下:

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