我最近开始使用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更新甚至不会通过软件包安装程序打开。
提前致谢
答案 0 :(得分:-1)
问题可能是尝试降级版本(不允许)。您的Eclipse项目似乎设置的版本代码与AndroidStudio现在的版本代码不同。
手动将versionCode设置为与Eclipse版本相同或更高的编号(您可以检查AndroidManifest中的旧代码),方法是将其添加到build.gradle
:
android {
defaultConfig {
versionCode 1234
...
}
}
除此之外,您始终可以使用adb:
安装“allow downgrade”标志adb install -r -d myApk.apk
-r
允许安装现有的应用
-d
允许版本降级