使用adb将apk部署到Android N手机时的java.lang.NullPointerException

时间:2017-06-03 14:07:03

标签: java android adb

我有一个AndroidStudio项目,最初可以通过adb部署到我的手机。

但在我将手机更新为Android N后,我再也无法使用adb进行部署了。

$ adb install app-release.apk 
Failed to install app-release.apk: 
Exception occurred while dumping:
java.lang.NullPointerException: rhs == null
    at java.lang.String.compareTo(Native Method)
    at java.lang.String.compareTo(String.java:1082)
    at java.util.Collections.indexedBinarySearch(Collections.java:299)
    at java.util.Collections.binarySearch(Collections.java:286)
    at com.android.server.pm.Settings.isInApp2sdBlacklist(Settings.java:5622)
    at com.android.server.pm.PackageManagerService.isInApp2sdBlacklist(PackageManagerService.java:21454)
    at android.app.ApplicationPackageManager.isInApp2sdBlacklist(ApplicationPackageManager.java:2534)
    at com.android.internal.content.PackageHelper.resolveInstallVolume(PackageHelper.java:416)
    at com.android.server.pm.PackageInstallerService.createSessionInternal(PackageInstallerService.java:647)
    at com.android.server.pm.PackageInstallerService.createSession(PackageInstallerService.java:566)
    at com.android.server.pm.PackageManagerShellCommand.doCreateSession(PackageManagerShellCommand.java:1141)
    at com.android.server.pm.PackageManagerS

可能是什么问题?

我用谷歌搜索了错误消息并且没有任何线索。另外,如何阅读此错误消息?似乎错误在Android库或java库中。 (是因为我将java更新为更高版本吗?)

1 个答案:

答案 0 :(得分:0)

如果遇到同样的问题

您可以尝试以下程序,然后您可能会弄清楚自己的问题是什么。

  1. 生成.apk文件。 (使用你的AndroidStudio或其他任何东西。)
  2. cd the\folder\containing\apk
  3. adb push name_of_the.apk path\on\the\mobile\phone\storage\
  4. 操作手机并通过点击.apk文件图标手动安装.apk
  5. 我的问题的答案

    虽然adb install在我的设备上失败(正如问题陈述所描述的那样),adb push(上面的步骤3)有效。

    在我完成上面的第4步之后,出现了一个意想不到的屏幕。

    The system is scanning malicious software.

    它说,'系统正在扫描恶意软件。'

    这就是我的问题的答案。在我将手机升级到Android N版本后,系统已添加了自动软件扫描,即使您使用的是开发者模式并使用adb,也会触发该扫描。

    并且错误消息没有显示任何线索。错误消息只是说java.lang.NullPointerException: rhs == null,它与之无关。

    我试过的但没有用的方法

    1. 在AndroidStudio中停用instant run

        

      Settings> Build, Execution, Deployment> Instant Run

    2. adb rootadb disable-verityadb rebootadb rootadb remount

        

      https://android.stackexchange.com/questions/162902/adb-push-not-working-on-system-read-only

相关问题