无法在升级到Android Lollipop的设备上使用adb安装apk

时间:2015-05-22 09:40:30

标签: android adb android-5.0-lollipop

我最近将我的一个Android设备升级为 Android Lollipop(5.0),现在我无法调试我的应用程序甚至在设备上使用adb安装apk。我收到以下错误

java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String android.os.SystemProperties.native_get(java.lang.St
ring, java.lang.String) (tried Java_android_os_SystemProperties_native_1get and Java_android_os_SystemProperties_native_1get__Lj
ava_lang_String_2Ljava_lang_String_2)
        at android.os.SystemProperties.native_get(Native Method)
        at android.os.SystemProperties.get(SystemProperties.java:64)
        at android.os.Environment.<clinit>(Environment.java:354)
        at android.os.Environment.getLegacyExternalStorageDirectory(Environment.java:488)
        at android.os.Debug.<clinit>(Debug.java:96)
        at android.ddm.DdmHandleHello.handleHELO(DdmHandleHello.java:164)
        at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java:91)
        at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171)
java.lang.UnsatisfiedLinkError: android.os.Debug
        at android.ddm.DdmHandleHello.handleFEAT(DdmHandleHello.java:176)
        at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java:93)
        at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171)
java.lang.UnsatisfiedLinkError: android.os.Debug
        at android.ddm.DdmHandleProfiling.handleMPRQ(DdmHandleProfiling.java:187)
        at android.ddm.DdmHandleProfiling.handleChunk(DdmHandleProfiling.java:88)
        at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java:171)

我的设备华硕FonePad 7 ME175CG或K00Z

内核版本

20年3月10日 - i386_cpt

机器人@ mec9#1

Mon Apr 20 13:30:08 CST 2015

这个问题有解决办法吗?

已更新

首先感谢那些关注这个非常具体的问题的人,非常感谢

进一步澄清,

当我收到此错误时,我在Google上搜索了整个Universe的短语java.lang.UnsatisfiedLinkError并尝试了一些似乎适用的解决方案,以及 @Kushal <建议的解决方案/ strong>和其他人。对于HTC M8以及华硕以外的设备,大多数问题都是(现在仍然如此)。如果你访问这个post,你可能会看到我的答案被SO警卫删除,我承认这不是一个真正的答案,我发布答案时我真的对解决问题感到失望。 / p>

无论如何,我现在所做的对其他人有帮助的是,

  1. 首先,我将Android SDK tools升级到最新版本 24.2 。在那之后,当我尝试adb install demo.apk时,在某些情况下,它是成功的,有时不是。我杀死了设备上所有正在运行的应用程序(正如一些人所建议的那样),但它有时会起作用,有时却不行。
  2. 然后,我尝试了其他解决方案,特别是这个post建议的解决方案。事实上,当我尝试使用Intellij IDEA调试应用程序时,IDE本身就是建议的过程,结果是
  3. enter image description here

    您可以看到IDE本身就像@Kushal建议的那样。

    之后,我发现了几条记录(简称为herehere,后者有人说过

      

    这是一些用L-MR1修复的HTC设备中的错误

    因此,我提出了一个想法,即华硕团队可能已经解决了这个问题,你们知道这件事情并向我提供。

    由于

5 个答案:

答案 0 :(得分:3)

停用Tools -> Android -> Enable ADB Integration解决了我的问题。

在华硕Zenfone 2上运行。

答案 1 :(得分:1)

我不知道为什么会出现此问题,但您可以通过关闭设备上所有正在运行的应用程序来成功避免此问题。

另外Unable to test app after upgrading to Lollipop

答案 2 :(得分:1)

此错误消息是由于manufecturer发布二进制问题(在这种情况下为 Asus )。此错误不会出现在 Google Nexus Samsung Galaxy 中,因为它们在二进制文件中处理

解决方案:

在搜索上述问题后,可在其他Stack Overflow问题上找到以下解决方案:

  1. 使用终端,只需使用adb重新安装即可避免Android Studio重新编译时间:

    $ terminal:/ sdk / platform-tools / adb install -r

  2. 通常它有效。如果再次失败,只需再次运行此命令

    1. 如果您真的想尝试一下,那么过程将是:

      1. 关闭Studio(或尝试禁用工具| Android |启用ADB集成)
      2. 在shell上执行以下操作:

         $ adb push /path/to/your/project/app/build/outputs/apk/app-debug.apk /data
        
         $ adb shell pm install /data/app-debug.apk
        
         $ (am start command from comment #4/#5)
        
      3. 重新启动IDE(或重新启用ADB集成)。

    2. Google小组建议使用此解决方案,以解决上述问题Here

      参考答案:Here

      这样你就可以重新安装apk并且上面的错误不会出现

答案 3 :(得分:1)

我找到了一个解决方案,虽然我不确定其他人是否愿意使用它,因为它可能会损坏设备并导致它变得无用

事实上,由于这个问题的答案听起来似乎是复制和粘贴其他问题的答案并且在我的情况下不适用我令人失望地试图做出激进的举动并闪现我的设备将其软件降级为Android 4.2.2但是很有意思我决定再次将我的设备闪存到Android Lollipop上,看它是否能解决这个问题并且不知道它确实(至少在我的情况下)!

重要提示!

在执行此过程之前,请考虑以下事实:您的设备可能会损坏,并且您丢失了设备上的所有数据。因此,请在继续之前制作备份副本。

我搜索了很多并找到了部分描述herehere的方法,但最后我遵循了这个程序:

  1. 根据您的设备类型( ww tw 或其他人)从此处(ASUS supportFonePad Support)下载正确的更新文件)。我是ww并下载了华硕Fonepad 7(ME175CG)软件映像版本:WW_V6.3.7 for WW
  2. 然后将下载的文件更改为ASUS_BUNDEL.ZIP
  3. 然后将该文件复制到根内部存储器
  4. 将设备置于恢复模式(通过保持音量增大和 电源键同时关闭)
  5. 选择SD下载
  6. 设备开始闪烁,完成后你会有一个全新的设备,问题就完全消除了。

    现在我可以使用adb命令安装apk并像以前一样调试我的应用程序,而且我还没有看到令人讨厌的错误。

    我打开这个答案以接收其他人的反馈,然后我将其标记为真正的答案。

    我希望这有助于其他人解决问题。

答案 4 :(得分:0)

我遇到了与华硕MemoPad ME70CX相同的问题,并通过使用命令行重启ADB服务器解决了这个问题。此外,您可能需要使用TaskManager终止在后台运行的BlueStacks进程。