无法在升级到 Android Lollipop 的设备上使用 adb 安装 apk
Unable to install apk using adb on device upgraded to Android 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)
我的设备是 Asus FonePad 7 ME175CG 或 K00Z
内核版本
3.10.20-i386_cpt
android@mec9#1
4 月 20 日星期一 13:30:08 CST 2015
这个问题有解决办法吗?
已更新
首先感谢那些关注这个非常具体问题的人,真的非常感谢
进一步说明,
当我收到这个错误时,我在整个宇宙中搜索了短语 java.lang.UnsatisfiedLinkError
并尝试了任何似乎适用的解决方案,以及 [=55= 建议的解决方案]@Kushal 和其他人。大多数问题是(现在仍然是)针对 HTC M8
和华硕以外的设备。如果你访问这个post,你可能会看到我的一个答案,它被 SO guards 删除了,我承认这不是一个真正的答案,我 post 答案虽然我对解决真的很失望问题。
无论如何,我到目前为止所做的可能对其他人有帮助的是,
- 首先,我将
Android SDK tools
升级到最新版本 24.2。在那之后,当我尝试 adb install demo.apk
时,在某些情况下它成功了,有时却失败了。我杀死了设备上的所有 运行 个应用程序(正如某些人所建议的那样),但它有时有效,有时无效。
- 然后,我尝试了其他解决方案,特别是这个 post 所建议的解决方案。事实上,当我尝试使用 Intellij IDEA 调试应用程序时,IDE 本身按照建议的程序进行操作,结果是
您可以看到 IDE 本身按照@Kushal 建议的程序执行。
在那之后,我找到了几条记录(指几条)here and here,后面有人说
This was a bug in some HTC devices that was fixed with L-MR1
因此我想到华硕团队可能会提供修复程序,你们知道,请提供给我。
谢谢
我不知道为什么会出现此问题,但您可以通过关闭设备上的所有 运行 应用程序来成功避免此问题。
还有
此错误消息是由于制造商发布二进制文件问题(在本例中为Asus)。此错误不会出现在 Google Nexus 和 Samsung Galaxy 中,因为它们采用二进制处理
解决方案:
搜索上述问题后,在其他 Stack Overflow 问题上找到以下解决方案:
使用终端,只需使用 adb 重新安装即可避免 Android Studio 重新编译时间:
$终端:/sdk/platform-tools/adb安装-r
而且通常都有效。如果再次失败,只需运行再次执行此命令
如果真的想尝试的话,流程是:
- 关闭 Studio(或尝试禁用工具 | Android | 启用 ADB 集成)
在 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)
重新启动 IDE(或重新启用 ADB 集成)。
此解决方案由 Google 小组建议,用于替代解决上述问题 Here
参考答案:Here
这样你就可以重新安装apk并且不会出现以上错误
我找到了解决方案,但我不确定其他人是否愿意使用它,因为它可能会损坏设备并导致其无法使用
事实上,由于问题收到的答案听起来只是复制和粘贴其他问题的答案,不适用于我的情况,我失望地尝试做出激进的举动并刷新我的设备以降级其软件升级到 Android 4.2.2 但碰巧我决定再次将我的设备刷新到 Android Lollipop 看看它是否解决了这个问题并且侥幸 它做到了 (至少在我的例子中)!
重要提示!
在执行此过程之前,请考虑以下事实:您的设备可能会损坏并且您会丢失设备上的所有数据。所以请在继续之前备份一份。
我搜索了很多并找到了部分描述的方法 here and here 但最后我遵循了这个过程:
- 根据您的设备类型从此处 (ASUS support or FonePad Support) 下载正确的更新文件 (ww, tw或其他)。我的是 ww 并下载了 ASUS Fonepad 7 (ME175CG) 软件映像版本:WW_V6.3.7 For WW.
- 然后把下载的文件改成ASUS_BUNDEL.ZIP
- 然后将该文件复制到根内存中
- 将设备置于恢复模式(通过保持音量和
同时按下电源键)
- 选择 SD 下载
设备开始闪烁,完成后您拥有一台全新的设备,问题已完全解决。
现在我可以像以前一样使用 adb 命令安装 apk 并调试我的应用程序,而且我再也没有看到讨厌的错误。
我会打开这个答案来接收其他人的反馈,然后我将其标记为真实答案。
我希望这可以帮助其他人解决问题。
禁用 Tools -> Android -> Enable ADB Integration
解决了我的问题。
运行 在华硕 Zenfone 2 上。
我在 Asus MemoPad ME70CX 上遇到了同样的问题,通过使用命令行重启 ADB 服务器解决了这个问题。此外,您可能需要使用 TaskManager 在后台终止 BlueStacks 进程 运行。
我最近将我的一个 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)
我的设备是 Asus FonePad 7 ME175CG 或 K00Z
内核版本
3.10.20-i386_cpt
android@mec9#1
4 月 20 日星期一 13:30:08 CST 2015
这个问题有解决办法吗?
已更新
首先感谢那些关注这个非常具体问题的人,真的非常感谢
进一步说明,
当我收到这个错误时,我在整个宇宙中搜索了短语 java.lang.UnsatisfiedLinkError
并尝试了任何似乎适用的解决方案,以及 [=55= 建议的解决方案]@Kushal 和其他人。大多数问题是(现在仍然是)针对 HTC M8
和华硕以外的设备。如果你访问这个post,你可能会看到我的一个答案,它被 SO guards 删除了,我承认这不是一个真正的答案,我 post 答案虽然我对解决真的很失望问题。
无论如何,我到目前为止所做的可能对其他人有帮助的是,
- 首先,我将
Android SDK tools
升级到最新版本 24.2。在那之后,当我尝试adb install demo.apk
时,在某些情况下它成功了,有时却失败了。我杀死了设备上的所有 运行 个应用程序(正如某些人所建议的那样),但它有时有效,有时无效。 - 然后,我尝试了其他解决方案,特别是这个 post 所建议的解决方案。事实上,当我尝试使用 Intellij IDEA 调试应用程序时,IDE 本身按照建议的程序进行操作,结果是
您可以看到 IDE 本身按照@Kushal 建议的程序执行。
在那之后,我找到了几条记录(指几条)here and here,后面有人说
This was a bug in some HTC devices that was fixed with L-MR1
因此我想到华硕团队可能会提供修复程序,你们知道,请提供给我。
谢谢
我不知道为什么会出现此问题,但您可以通过关闭设备上的所有 运行 应用程序来成功避免此问题。
还有
此错误消息是由于制造商发布二进制文件问题(在本例中为Asus)。此错误不会出现在 Google Nexus 和 Samsung Galaxy 中,因为它们采用二进制处理
解决方案:
搜索上述问题后,在其他 Stack Overflow 问题上找到以下解决方案:
使用终端,只需使用 adb 重新安装即可避免 Android Studio 重新编译时间:
$终端:/sdk/platform-tools/adb安装-r
而且通常都有效。如果再次失败,只需运行再次执行此命令
如果真的想尝试的话,流程是:
- 关闭 Studio(或尝试禁用工具 | Android | 启用 ADB 集成)
在 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)
重新启动 IDE(或重新启用 ADB 集成)。
此解决方案由 Google 小组建议,用于替代解决上述问题 Here
参考答案:Here
这样你就可以重新安装apk并且不会出现以上错误
我找到了解决方案,但我不确定其他人是否愿意使用它,因为它可能会损坏设备并导致其无法使用
事实上,由于问题收到的答案听起来只是复制和粘贴其他问题的答案,不适用于我的情况,我失望地尝试做出激进的举动并刷新我的设备以降级其软件升级到 Android 4.2.2 但碰巧我决定再次将我的设备刷新到 Android Lollipop 看看它是否解决了这个问题并且侥幸 它做到了 (至少在我的例子中)!
重要提示!
在执行此过程之前,请考虑以下事实:您的设备可能会损坏并且您会丢失设备上的所有数据。所以请在继续之前备份一份。
我搜索了很多并找到了部分描述的方法 here and here 但最后我遵循了这个过程:
- 根据您的设备类型从此处 (ASUS support or FonePad Support) 下载正确的更新文件 (ww, tw或其他)。我的是 ww 并下载了 ASUS Fonepad 7 (ME175CG) 软件映像版本:WW_V6.3.7 For WW.
- 然后把下载的文件改成ASUS_BUNDEL.ZIP
- 然后将该文件复制到根内存中
- 将设备置于恢复模式(通过保持音量和 同时按下电源键)
- 选择 SD 下载
设备开始闪烁,完成后您拥有一台全新的设备,问题已完全解决。
现在我可以像以前一样使用 adb 命令安装 apk 并调试我的应用程序,而且我再也没有看到讨厌的错误。
我会打开这个答案来接收其他人的反馈,然后我将其标记为真实答案。
我希望这可以帮助其他人解决问题。
禁用 Tools -> Android -> Enable ADB Integration
解决了我的问题。
运行 在华硕 Zenfone 2 上。
我在 Asus MemoPad ME70CX 上遇到了同样的问题,通过使用命令行重启 ADB 服务器解决了这个问题。此外,您可能需要使用 TaskManager 在后台终止 BlueStacks 进程 运行。