【问题标题】:Error installing split apks: com.android.ddmlib.InstallException: Failed to finalize session : INSTALL_FAILED_INVALID_APK安装拆分 apk 时出错:com.android.ddmlib.InstallException:无法完成会话:INSTALL_FAILED_INVALID_APK
【发布时间】:2016-04-20 17:38:06
【问题描述】:

Android Studio 没有将我的 APK 推送到带有 Marshmallow (6.0.1) 的物理 Nexus 5X。

这是输出和错误:

01/15 01:51:48: Launching mobile
$ adb install-multiple -r /Users/MyUser/AndroidStudioProjects/MyApp/mobile/build/outputs/apk/mobile-development-debug-unaligned.apk /Users/MyUser/AndroidStudioProjects/MyApp/mobile/build/intermediates/split-apk/development/debug/main.apk /Users/MyUser/AndroidStudioProjects/MyApp/mobile/build/intermediates/split-apk/development/debug/main.apk 

Error installing split apks: com.android.ddmlib.InstallException: Failed to finalize session : INSTALL_FAILED_INVALID_APK: Split lib_main was defined multiple times
Error during launch

详情:

默认配置: minSdkVersion 9 targetSdkVersion 23 multiDexEnabled 是的

2 buildTypes:调试和发布

2 productFlavors:开发和生产

dex 选项: 增量错误 preDexLibraries = 假 巨型模式 = 真 javaMaxHeapSize "4096M"

我正在使用最新的 Android Studio 2.0 Preview 5 (http://tools.android.com/recent/androidstudio20preview5available)。

Gradle:distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.zip

构建工具是:'com.android.tools.build:gradle:2.0.0-alpha5'。

有没有办法告诉 Android Studio 不使用 install-multiple 来安装 apk?

更新(美国东部标准时间 2016 年 1 月 15 日凌晨 2:26):

在带有 Jelly Bean (4.3.1) 的 Galaxy Nexus 模拟器或带有 Gingerbread (2.3.6) 的实体三星 Galaxy S 上运行应用程序时不会出现此问题。

更新(美国东部标准时间 2016 年 1 月 15 日上午 11:30):

在装有 KitKat (4.4.4) 的 Nexus 5 上运行该应用,它运行良好。

【问题讨论】:

  • 你在使用 NDK 吗?
  • 否 @andresperezl,不使用 NDK。奇怪的是,带有 Jelly Bean 的 Galaxy Nexus 模拟器和带有 Gingerbread 的实体三星 Galaxy S 都不会出现此问题。
  • 您在哪个设备和 Android 版本上运行此应用?
  • @RacZo 禁用即时运行。

标签: java android android-studio android-gradle-plugin


【解决方案1】:

这应该在 2.0.0-alpha6 中修复,现在可用。 https://sites.google.com/a/android.com/tools/tech-docs/new-build-system

【讨论】:

  • 哇!那太快了!谢谢!
  • 修复似乎有效,在使用 2.0.0-alpha6 清理和重建项目后,Android Studio 将 APK 推送到带有 Marshmallow 的 Nexus 5X、带有 KitKat 的 Nexus 5、模拟器Jelly Bean 和三星 Galaxy S 与 Gingerbread 为 2.0.0-alpha3。为了让它在 Nexus 5X 上运行,我必须清除应用程序的缓存,卸载它并重新启动设备(如果我只是试图通过点击运行来替换旧的 APK,它将无法工作并且会显示很多错误关于 APK 中的引导类)。再次感谢!
  • alpha6 解决了这个问题,但是当我尝试运行该应用程序时遇到了另一个问题。所以禁用 Instant Run 是我唯一的解决方案 :-(
  • 我在使用 NDK、preview6、alpha6 插件并得到 INSTALL_FAILED_INVALID_APK: /data/app/vmdl1312093572.tmp/1_main version code 2005 与 8002005 不一致。请帮忙!
  • 我在 alpha8 上。还是看到这个
【解决方案2】:

新的 Gradle 插件似乎存在多个问题 - 包括 alpha5 和 alpha6。但看起来如果所有其他方法都失败了,您需要禁用 Instant Run。对我来说,这个特定的错误是通过使用 alpha6 来解决的,正如上面提到的@Tor Norbye - 但后来我遇到了这个错误,而不是https://code.google.com/p/android/issues/detail?id=195044

当他们解决问题时,Instant Run 将是一个非常酷的功能!

【讨论】:

    【解决方案3】:

    我刚刚在 Android Studio 3.3 中遇到了类似的问题;而我通过更改包和应用程序 ID 信息将项目复制到另一个项目中。

    由于旧应用程序已安装在目标设备上,因此以下 2 个选项有效

    1.清理项目并再次构建(工作)

    2。卸载设备上以前的应用(工作中)

    【讨论】:

      猜你喜欢
      • 2018-11-14
      • 2017-02-14
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 2016-11-21
      相关资源
      最近更新 更多