升级到 Lollipop 后无法测试应用
Unable to test app after upgrading to Lollipop
我正在使用 Android Studio 开发我的应用程序。
自从我将 HTC One M8 升级到 Lollipop 后,我无法通过 "Run app" 在 Android Studio 中使用它来测试我的应用程序。
我收到此错误,但我的 phone:
没有任何反应
Launching application: com.project.GalleryActivity.
DEVICE SHELL COMMAND: am start -n "com.project.GalleryActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String android.os.SystemProperties.native_get(java.lang.String) (tried Java_android_os_SystemProperties_native_1get and Java_android_os_SystemProperties_native_1get__Ljava_lang_String_2)
at android.os.SystemProperties.native_get(Native Method)
at android.os.SystemProperties.get(SystemProperties.java)
at com.htc.customization.HtcCustomizationManager.<init>(HtcCustomizationManager.java)
at com.htc.customization.HtcCustomizationManager.<clinit>(HtcCustomizationManager.java)
at android.os.Environment$UserEnvironment.getCustomizationReader(Environment.java)
at android.os.Environment$UserEnvironment.isDynamicSwitchSupported(Environment.java)
at android.os.Environment$UserEnvironment.<init>(Environment.java)
at android.os.Environment.initForCurrentUser(Environment.java)
at android.os.Environment.<clinit>(Environment.java)
at android.os.Environment.getLegacyExternalStorageDirectory(Environment.java)
at android.os.Debug.<clinit>(Debug.java)
at android.ddm.DdmHandleHello.handleHELO(DdmHandleHello.java)
at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java)
at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java)
java.lang.UnsatisfiedLinkError: android.os.Debug
at android.ddm.DdmHandleHello.handleFEAT(DdmHandleHello.java)
at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java)
at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java)
java.lang.UnsatisfiedLinkError: android.os.Debug
at android.ddm.DdmHandleProfiling.handleMPRQ(DdmHandleProfiling.java)
at android.ddm.DdmHandleProfiling.handleChunk(DdmHandleProfiling.java)
at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java)
Aborted
我的项目设置如下:
这项技术在升级之前非常有效,从那时起我就没有改变任何东西。
您是否在设备上使用任何第三方启动器?我在使用 Aviate 启动器时遇到同样的问题。我在 Personalize->Main Screen 设置中切换回 BlinkFeed,现在我对设备的部署是稳定的。
类路径 com.htc.customization.HtcCustomizationManager
让我想起了这个与启动器相关的问题。
我不确定根本原因是什么,但我发现我可以通过在尝试 运行 之前关闭 phone 上的所有 运行 应用程序来成功避免此问题我的代码在我的 M8 上。
我发现了一个"workaround"来解决这个问题
找到 HTC Blink Home Launcher 并卸载更新
(注意:卸载启动器更新将删除启动器上放置的所有图标和小部件)
这对我有用,现在可以使用它进行调试,而无需删除多任务中的应用程序。
这应该是HTC造成的bug吧?
(我使用的是 HTC Butterfly 2 & Android 5.0.2)
我在使用 Android 5.0 的华硕 Zenfone 5 (ASUS_T00J) 上遇到了同样的错误。对我来说,解决方案是关闭 "Developer Options" 中的 "Verify Apps over USB"。
启动器可能不是问题,因为我尝试使用 Google Now Launcher 也没有成功。使用 Android 5.1
在我的 Nexus 5 上运行良好
解决方法:在 Android Studio 中禁用 ADB 集成。
工具 > Android > 取消选中启用 ADB 集成
我没有代表发表评论,但我处于与@user47625 相同的情况,但我的 "Verify Apps over USB" 已经关闭。我试着用一些推理来放大这个答案。
起初我尝试过更换启动器,我运气不错,但很失败,不是一个合适的解决方案。重新启动 phone 允许几个小时的平静工作。
然后我在 google 上发现有人说:
If it is that bug: The DDMS client connects with a "Hello" when the PM process first starts and registers itself, but before it has fully initialized all the native code. It is a race in stock Android and occurs there too
因此,如果发生这种竞争,它不会每次都发生,但时不时地,我怀疑与 Android 上的项目交互有关。我不知道它是否与 CPU、RAM 或应用程序相关,但在我的 Zenfone 2 上关闭所有后台应用程序 (1) 并释放内存 (2) 可以解决问题,让我能够正确调试应用程序。
我使用 Clean Master 因为 Zenfone 2 有库存,但我怀疑每个内存管理器都可以做到这一点。试一试
我在ASUS ME176C(Lollipop 5.0)上遇到了同样的问题,
但我通过 将 "Select debug app" 设置为 "No" 来解决它。然后照常推送apk。之后,您可以重新选择 "debug app" 以定位应用程序。
这个解决方案对我有用,你可以试一试。
在系统环境变量中添加adb路径(我用的是windows8)
例如:我的路径是 "C:\Users\xxx\AppData\Local\Android\sdk\platform-tools"
别忘了重启系统才能生效!
关于如何设置路径和环境变量在Windows >> here
我已经通过下面的解决方法取得了相当大的成功。
每次与您的应用进行调试会话后,转到 Android Studio 终端:
> adb shell am force-stop com.your.app.package
我仍然偶尔会收到 java.lang.UnsatisfiedLinkError
但只是遵循上述命令而不是在 build/push apk/install 过程之间尝试调试会话。
对我来说,这节省了很多浪费时间的建设只是为了得到错误。如果上面的命令不起作用,只需 up-arrow
并重新 运行 命令,直到它正常工作。
在我的 HTC M8 上,我通过禁用 "Settings -> Developer options -> Use NuPlayer(experimental)"
解决了这个问题
我注意到的是,当我尝试 运行 我很久以前(几年前)创建的应用程序时,我必须禁用 NuPlayer。但是,对于新应用程序,我必须选中该选项。
希望这对您有所帮助....
在华硕 ZenPad 5.0.2 上,我能够通过进入华硕的自动启动管理器(设置 -> 电源管理 -> 自动启动管理器)并允许我的应用程序自动启动来解决问题.
我正在使用 Android Studio 开发我的应用程序。
自从我将 HTC One M8 升级到 Lollipop 后,我无法通过 "Run app" 在 Android Studio 中使用它来测试我的应用程序。 我收到此错误,但我的 phone:
没有任何反应Launching application: com.project.GalleryActivity.
DEVICE SHELL COMMAND: am start -n "com.project.GalleryActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String android.os.SystemProperties.native_get(java.lang.String) (tried Java_android_os_SystemProperties_native_1get and Java_android_os_SystemProperties_native_1get__Ljava_lang_String_2)
at android.os.SystemProperties.native_get(Native Method)
at android.os.SystemProperties.get(SystemProperties.java)
at com.htc.customization.HtcCustomizationManager.<init>(HtcCustomizationManager.java)
at com.htc.customization.HtcCustomizationManager.<clinit>(HtcCustomizationManager.java)
at android.os.Environment$UserEnvironment.getCustomizationReader(Environment.java)
at android.os.Environment$UserEnvironment.isDynamicSwitchSupported(Environment.java)
at android.os.Environment$UserEnvironment.<init>(Environment.java)
at android.os.Environment.initForCurrentUser(Environment.java)
at android.os.Environment.<clinit>(Environment.java)
at android.os.Environment.getLegacyExternalStorageDirectory(Environment.java)
at android.os.Debug.<clinit>(Debug.java)
at android.ddm.DdmHandleHello.handleHELO(DdmHandleHello.java)
at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java)
at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java)
java.lang.UnsatisfiedLinkError: android.os.Debug
at android.ddm.DdmHandleHello.handleFEAT(DdmHandleHello.java)
at android.ddm.DdmHandleHello.handleChunk(DdmHandleHello.java)
at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java)
java.lang.UnsatisfiedLinkError: android.os.Debug
at android.ddm.DdmHandleProfiling.handleMPRQ(DdmHandleProfiling.java)
at android.ddm.DdmHandleProfiling.handleChunk(DdmHandleProfiling.java)
at org.apache.harmony.dalvik.ddmc.DdmServer.dispatch(DdmServer.java)
Aborted
我的项目设置如下:
这项技术在升级之前非常有效,从那时起我就没有改变任何东西。
您是否在设备上使用任何第三方启动器?我在使用 Aviate 启动器时遇到同样的问题。我在 Personalize->Main Screen 设置中切换回 BlinkFeed,现在我对设备的部署是稳定的。
类路径 com.htc.customization.HtcCustomizationManager
让我想起了这个与启动器相关的问题。
我不确定根本原因是什么,但我发现我可以通过在尝试 运行 之前关闭 phone 上的所有 运行 应用程序来成功避免此问题我的代码在我的 M8 上。
我发现了一个"workaround"来解决这个问题
找到 HTC Blink Home Launcher 并卸载更新
(注意:卸载启动器更新将删除启动器上放置的所有图标和小部件)
这对我有用,现在可以使用它进行调试,而无需删除多任务中的应用程序。 这应该是HTC造成的bug吧? (我使用的是 HTC Butterfly 2 & Android 5.0.2)
我在使用 Android 5.0 的华硕 Zenfone 5 (ASUS_T00J) 上遇到了同样的错误。对我来说,解决方案是关闭 "Developer Options" 中的 "Verify Apps over USB"。 启动器可能不是问题,因为我尝试使用 Google Now Launcher 也没有成功。使用 Android 5.1
在我的 Nexus 5 上运行良好解决方法:在 Android Studio 中禁用 ADB 集成。
工具 > Android > 取消选中启用 ADB 集成
我没有代表发表评论,但我处于与@user47625 相同的情况,但我的 "Verify Apps over USB" 已经关闭。我试着用一些推理来放大这个答案。
起初我尝试过更换启动器,我运气不错,但很失败,不是一个合适的解决方案。重新启动 phone 允许几个小时的平静工作。
然后我在 google 上发现有人说:
If it is that bug: The DDMS client connects with a "Hello" when the PM process first starts and registers itself, but before it has fully initialized all the native code. It is a race in stock Android and occurs there too
因此,如果发生这种竞争,它不会每次都发生,但时不时地,我怀疑与 Android 上的项目交互有关。我不知道它是否与 CPU、RAM 或应用程序相关,但在我的 Zenfone 2 上关闭所有后台应用程序 (1) 并释放内存 (2) 可以解决问题,让我能够正确调试应用程序。
我使用 Clean Master 因为 Zenfone 2 有库存,但我怀疑每个内存管理器都可以做到这一点。试一试
我在ASUS ME176C(Lollipop 5.0)上遇到了同样的问题,
但我通过 将 "Select debug app" 设置为 "No" 来解决它。然后照常推送apk。之后,您可以重新选择 "debug app" 以定位应用程序。
这个解决方案对我有用,你可以试一试。
在系统环境变量中添加adb路径(我用的是windows8)
例如:我的路径是 "C:\Users\xxx\AppData\Local\Android\sdk\platform-tools"
别忘了重启系统才能生效!
关于如何设置路径和环境变量在Windows >> here
我已经通过下面的解决方法取得了相当大的成功。
每次与您的应用进行调试会话后,转到 Android Studio 终端:
> adb shell am force-stop com.your.app.package
我仍然偶尔会收到 java.lang.UnsatisfiedLinkError
但只是遵循上述命令而不是在 build/push apk/install 过程之间尝试调试会话。
对我来说,这节省了很多浪费时间的建设只是为了得到错误。如果上面的命令不起作用,只需 up-arrow
并重新 运行 命令,直到它正常工作。
在我的 HTC M8 上,我通过禁用 "Settings -> Developer options -> Use NuPlayer(experimental)"
解决了这个问题我注意到的是,当我尝试 运行 我很久以前(几年前)创建的应用程序时,我必须禁用 NuPlayer。但是,对于新应用程序,我必须选中该选项。
希望这对您有所帮助....
在华硕 ZenPad 5.0.2 上,我能够通过进入华硕的自动启动管理器(设置 -> 电源管理 -> 自动启动管理器)并允许我的应用程序自动启动来解决问题.