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

时间:2016-11-15 16:50:46

标签: 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

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

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

项目目标= 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')
}

有谁知道更新无法安装的原因? 我的apk更新甚至不会通过软件包安装程序打开。

提前致谢

1 个答案:

答案 0 :(得分:-1)

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

手动将versionCode设置为与Eclipse版本相同或更高的编号(您可以检查AndroidManifest中的旧代码),方法是将其添加到build.gradle

android {
    defaultConfig {
        versionCode 1234
    ...
    }
}

除此之外,您始终可以使用adb:

安装“allow downgrade”标志
adb install -r -d myApk.apk

-r允许安装现有的应用

-d允许版本降级