为什么我的命令行 android list targets 什么都不显示?

Why is my command line android list targets showing nothing?

我 运行ning windows 10 安装了 Android Studio,但我是从命令行执行所有这些操作。我下载了最新的 android sdk。然后我从 github 下载了项目文件。

我运行一个build ndk-build。我认为它是成功的,因为它花了大约 20 分钟左右。在生成文件的子文件夹 libs/mips 中:liblept.solibpng.solibtess.so

然后我尝试 运行 android 更新项目命令,如下所示:

C:\Program Files (x86)\Android\android-sdk\tools>android update project -p c:\tess\tess-two

我确保在 tess-two 文件夹中有 AndroidManifest.xml.

我收到此错误消息:

Error: The project either has no target set or the target is invalid.
Please provide a --target to the 'android.bat update' command.

在研究了 Android 开发页面后,我 运行 这个命令:

C:\Program Files (x86)\Android\android-sdk\tools>android list targets

如果这样的目标没有错误消息或其他任何内容,结果只是一行没有列表:

可用 Android 个目标:

如何让项目按照我尝试遵循的示例进行更新 here 建议。

我尝试了在此处找到的解决方案 "android list target" show nothing for AOSP build ...但收到错误消息,提示我需要目标 ID 才能构建 AVD。

我尝试了一些 运行dom 目标 ID,但它们无效..我做错了什么?

感谢您的帮助。

编辑:新信息 感谢您的帮助,我通过使用 "android list" 而不是 "android target list" 获得了列表。必须是 windows 版本;我刚刚升级到 Windows 10。

这就是我得到的。问题是我怎么知道要使用哪个目标 ID?在我的 AndroidManifest.xml 文件中,我看到了这个属性:

 <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="20" />

我有三个文件夹:"armeabi-v7a"、"mips"、"x860"。每个文件夹有三个文件:"liblept.so"、"libpng.so"、"libtess.so"。我找到的目标列表是否与 targetSdkVersion 或三个库文件中的任何一个相关?

我不确定 android update project --path 使用哪一个。 --target.

这是找到的列表:

C:\android-sdk\android-sdk-windows\platforms>android 列表 可用 Android 个目标: 可用 Android 虚拟设备:

无法加载以下 Android 虚拟设备: 姓名:Nexus_5_API_22_x86 路径:C:\Users....android\avd\Nexus_5_API_22_x86.avd 错误:C:\Users 中的未知目标 'Google Inc.:Google APIs:22'....android \avd\Nexus_5_API_22_x86.ini 可用设备定义: 编号:0 或 "tv_1080p" 名称:Android 电视 (1080p) 原始设备制造商:Google

标签:android-电视

id: 1 或 "tv_720p" 名称:Android 电视 (720p) 原始设备制造商:Google

标签:android-电视

id: 2 或 "wear_round" 姓名:Android 穿圆 原始设备制造商:Google

标签:android-wear

id: 3 或 "wear_square" 姓名:Android穿坊 原始设备制造商:Google

标签:android-wear

id: 4 或 "Galaxy Nexus" 名称:Galaxy Nexus

原始设备制造商:Google

id: 5 或 "Nexus 10" 名称:Nexus 10

原始设备制造商:Google

id: 6 或 "Nexus 4" 名称:Nexus 4

原始设备制造商:Google

id: 7 或 "Nexus 5" 名称:Nexus 5

原始设备制造商:Google

id: 8 或 "Nexus 6" 名称:Nexus 6

原始设备制造商:Google

id: 9 或 "Nexus 7 2013" 名称:Nexus 7

原始设备制造商:Google

id: 10 或 "Nexus 7" 名称:Nexus 7 (2012)

原始设备制造商:Google

id: 11 或 "Nexus 9" 名称:Nexus 9

原始设备制造商:Google

id: 12 或 "Nexus One" 名称:Nexus One

原始设备制造商:Google

id: 13 或 "Nexus S" 名称:Nexus S

原始设备制造商:Google

id: 14 或 "2.7in QVGA" 名称:2.7" QVGA

OEM:通用

id: 15 或“2.7 英寸 QVGA 滑块” 名称:2.7" QVGA 滑块

OEM:通用

id: 16 或“3.2 英寸 HVGA 滑块 (ADP1)” 名称:3.2" HVGA 滑块 (ADP1)

OEM:通用

id: 17 或“3.2 英寸 QVGA (ADP2)” 名称: 3.2" QVGA (ADP2)

OEM:通用

id: 18 或 "3.3in WQVGA" 名称:3.3" WQVGA

OEM:通用

id: 19 或 "3.4in WQVGA" 名称:3.4" WQVGA

OEM:通用

id: 20 或“3.7 FWVGA 滑块” 名称:3.7" FWVGA 滑块

OEM:通用

id: 21 或“3.7in WVGA (Nexus One)” 名称:3.7" WVGA (Nexus One)

OEM:通用

id: 22 或“4in WVGA (Nexus S)” 名称:4" WVGA (Nexus S)

OEM:通用

id: 23 或“4.65in 720p (Galaxy Nexus)” 名称:4.65" 720p (Galaxy Nexus)

OEM:通用

id: 24 或“4.7in WXGA” 名称:4.7" WXGA

OEM:通用

id: 25 或“5.1in WVGA” 名称:5.1" WVGA

OEM:通用

id: 26 或“5.4in FWVGA” 名称:5.4" FWVGA

OEM:通用

id: 27 或“7in WSVGA(平板电脑)” 名称:7" WSVGA(平板电脑)

OEM:通用

id: 28 或“10.1in WXGA(平板电脑)” 名称:10.1" WXGA(平板电脑) OEM:通用

为确保您至少有一个目标可用,请导航到您的 sdk/installation/path/platforms 并查看您是否有任何版本的 android。

这是我使用 android list targets:

得到的输出
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar 
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar 
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar 
Available Android targets:
----------
id: 1 or "android-19"
     Name: Android 4.4.2
     Type: Platform
     API level: 19
     Revision: 4
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : default/armeabi-v7a
----------
id: 2 or "android-22"
     Name: Android 5.1.1
     Type: Platform
     API level: 22
     Revision: 2
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : android-tv/armeabi-v7a, android-tv/x86, default/armeabi-v7a, default/x86, default/x86_64
----------
id: 3 or "android-23"
     Name: Android 6.0
     Type: Platform
     API level: 23
     Revision: 1
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : default/armeabi-v7a, default/x86, default/x86_64
----------
id: 4 or "Google Inc.:Google APIs (x86 System Image):19"
     Name: Google APIs (x86 System Image)
     Type: Add-On
     Vendor: Google Inc.
     Revision: 15
     Description: Android x86 + Google APIs
     Based on Android 4.4.2 (API level 19)
     Libraries:
      * com.android.future.usb.accessory (usb.jar)
          API for USB Accessories
      * com.google.android.media.effects (effects.jar)
          Collection of video effects
      * com.google.android.maps (maps.jar)
          API for Google Maps
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : default/x86
----------
id: 5 or "Google Inc.:Google APIs:22"
     Name: Google APIs
     Type: Add-On
     Vendor: Google Inc.
     Revision: 1
     Description: Android + Google APIs
     Based on Android 5.1.1 (API level 22)
     Libraries:
      * com.android.future.usb.accessory (usb.jar)
          API for USB Accessories
      * com.google.android.media.effects (effects.jar)
          Collection of video effects
      * com.google.android.maps (maps.jar)
          API for Google Maps
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
 Tag/ABIs : google_apis/armeabi-v7a, google_apis/x86, google_apis/x86_64

我看到你正在构建 tess-two,所以这是我到达那个部分时使用的命令:

android update project --path . --target 3

注意我使用.作为路径,因为我已经在tess-two文件夹中,而linux中的.代表当前文件夹。

我需要 运行 SDK 管理器以及更新和安装所有默认包: C:\Program Files (x86)\Android\android-sdk\SDK Manager.exe