Flutter常见问题-Error retrieving device properties for ro.product.cpu.abi

4,428 阅读3分钟

解决方法

为了避免后来看到的小伙伴们走弯路,先直接贴出解决方法,其余内容只是记录还原一下问题。

方法: 把Android Platform Tools 29换成Android Platform Tools 28,下载链接在文末。

问题重现

说来也奇怪,就出去上了个实验课,回来Android Studio就编译不了flutter app。控制台部分输出如下:

Exit code -1073740940 from C:\SDK\platform-tools\adb -s emulator-5554 shell -x logcat -v time -t l

看输出估摸着是adb的问题 于是bash了一下adb --version,输出如下:

Android Debug Bridge version 1.0.40
Version 29.0.1-5303910
Installed as C:\SDK\platform-tools\adb.exe

因为太蔡也没能看出有什么问题,于是想着去flutter doctor一下,检查检查问题,部分输出如下:

[√] Flutter (Channel master, v1.7.2-pre.30, on Microsoft Windows [Version 10.0.17763.529], locale zh-CN)
[!]  Android toolchain - develop for Android devices (Android SDK version 29.0.1)
     × Android license status unknown.
     Try re-installing or updating your Android SDK Manager.
     See https://developer.android.com/studio/#downloads or visit https://flutterchina.club/using-ide/ to get more instructions.
[√] Android Studio (version 3.4)
[√] VS Code, 64-bit edition (version 1.34.0)
[!] Connected device
    ! No devices available
!   Doctor found issuses in 2 categories.

所以问题大概是Android license的问题?好在下面给出解决方案:重新安装或者升级SDK Manager

  • 重新安装

    重新安装显然失败了,输出基本一致,不再贴出

  • 升级SDK Manager

    首先进入到SDK tools的bin目录,cd C:\SDK\tools\bin,直接执行sdkmanager --update,本以为万事大吉,然鹅部分输出如下:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

很明显flutter doctor给出的解决方案,并没有作用,于是只得上网四处搜寻一波。解决方案诸如adb kill之类的,没有作用

一气之下重装了Android Studio,flutter docor之后,多了一行输出如下:

Error retrieving device properties for ro.product.cpu.abi

然鹅用这个去搜索仍然没有解决方案,只得翻墙出去找找(毕竟谷歌的东西) 很快找到了第一个26 May 2017的issue,下拉完基本是没有解决的问题。于是继续找到第二个23 Apr 2018的issue,翻到快最后时发现一个comment如下,发表于两天前也就是6 June 2019,和我出现问题时间差不多

This is a problem with platform tools 29. Temporary fix in my issue

看评论应该是platform tools 29的问题,后面他提及了一个issue,点开后得到一个解决方案。

Install the latest version of android studio beta on windows (platform tools 29 will be installed)

OK,到这儿问题就很简单了,降级platform tools

  1. 打开SDK所在文件夹
  2. 移除platform-tools文件夹(确认结束了adb相关进程)
  3. 解压platform-tools 28放进去替换就好

(Android Studio的SDK Manager似乎也能直接降级,但是不知道为什么我这样做却没有作用,所以建议还是下载手动替换)

以下是下载地址:

Windows: http://dl-ssl.google.com/android/repository/platform-tools_r28.0.2-windows.zip
macOS: http://dl-ssl.google.com/android/repository/platform-tools_r28.0.2-darwin.zip
Linux: http://dl-ssl.google.com/android/repository/platform-tools_r28.0.2-linux.zip

OK,bash一下flutter doctor,全绿通过~

打开AVD合影,完结撒花~

再引用一句提供解决方案的大佬的话I found a temporary fix while we wait for a solution provided by the Flutter team

希望flutter能对我好点~少一点这种bug~