java.lang.ClassNotFoundException:com.android.packageinstaller.InstallFlowAnalytics

tur*_*boy 5 android android-studio

我最近开始使用Android Studio而不是使用Eclipse.我使用Android Studio将Eclipse项目导入并迁移到Android Studio中.如果我使用AS构建项目并将其下载到设备,它可以正常工作.

问题是如果设备已经安装了以前版本的应用程序(由Eclipse构建),它将无法安装甚至打开.我得到以下例外.

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:6195)
                                             at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:2699)
                                             at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:2161)
                                             at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6318)
                                             at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:6096)
                                             at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:170)
                                             at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3986)
                                             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:6195) 
                                             at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:2699) 
                                             at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:2161) 
                                             at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6318) 
                                             at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:6096) 
                                             at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:170) 
                                             at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3986) 
                                             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
Run Code Online (Sandbox Code Playgroud)

.

在我更新Android Studio构建和gradle之后,似乎发生了上述异常.在那之前一切正常.

Eclipse的设置是:Android SDK Build-Tools 23.0.3

project target = Google Inc.:Google API:22

当前的Android Studio是:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 'Google Inc.:Google APIs:23'
    buildToolsVersion "24.0.3"

    useLibrary 'org.apache.http.legacy'

    lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
    }

    defaultConfig {
        applicationId "com.xxxxxxxxxx"
        minSdkVersion 11
        targetSdkVersion 21
        versionName "4.0.1"
        setProperty("archivesBaseName", "RR3v$versionName")
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.google.android.gms:play-services:+'
    compile 'joda-time:joda-time:2.1'
    compile files('libs/activation.jar')
    compile files('libs/additionnal.jar')
    compile files('libs/core.jar')
    compile files('libs/ftp4j-1.7.2.jar')
    compile files('libs/mail.jar')
    compile files('libs/ndeftools-1.2.3.jar')
    compile files('libs/sqlcipher.jar')
    compile files('libs/gcm.jar')
}
Run Code Online (Sandbox Code Playgroud)

.

有谁知道为什么更新不会安装?我的apk更新甚至不会通过软件包安装程序打开.

提前致谢

Phi*_*Lab 0

问题可能是尝试降级版本(这是不允许的)。看来您的 Eclipse 项目设置的版本代码与 AndroidStudio 现在的不同。

通过将以下内容添加到您的build.gradle

android {
    defaultConfig {
        versionCode 1234
    ...
    }
}
Run Code Online (Sandbox Code Playgroud)

除此之外,您始终可以使用 adb 使用“允许降级”标志进行安装:

adb install -r -d myApk.apk
Run Code Online (Sandbox Code Playgroud)

-r允许安装已有的应用程序

-d允许版本降级