在 Intellij IDEA 中使用 android.support.v4 库

using android.support.v4 library in Intellij idea

在我的 android 项目中,我尝试使用 android.support.v4.widget.DrawerLayout

在它之前我将它添加到 libs 库 (cp MySdkForder/extras/android/support/v4/android-support-v4.jar MyProjectFolder/libs)

之后,我将它添加到 classpath 中,如下所示:

所以我的 main.xml 文件中有这样的代码

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ListView android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#111" />
</android.support.v4.widget.DrawerLayout>

这张是我在developer.android.com

某处拍的

想法使这段代码完全没问题

当我尝试启动它时出现问题。当我按 run 时,adb

出现以下错误
Cannot reload AVD list: cvc-enumeration-valid: Value '280dpi' is not facet-valid with respect to enumeration '[ldpi, mdpi, tvdpi, hdpi, xhdpi, 400dpi, xxhdpi, 560dpi, xxxhdpi]'. It must be a value from the enumeration.
Error parsing /usr/lib/android/android-sdk-linux/system-images/android-22/android-wear/armeabi-v7a/devices.xml
cvc-enumeration-valid: Value '280dpi' is not facet-valid with respect to enumeration '[ldpi, mdpi, tvdpi, hdpi, xhdpi, 400dpi, xxhdpi, 560dpi, xxxhdpi]'. It must be a value from the enumeration.
Error parsing /usr/lib/android/android-sdk-linux/system-images/android-22/android-wear/x86/devices.xml
cvc-enumeration-valid: Value '280dpi' is not facet-valid with respect to enumeration '[ldpi, mdpi, tvdpi, hdpi, xhdpi, 400dpi, xxhdpi, 560dpi, xxxhdpi]'. It must be a value from the enumeration.
Error parsing /usr/lib/android/android-sdk-linux/system-images/android-22/android-wear/armeabi-v7a/devices.xml
cvc-enumeration-valid: Value '280dpi' is not facet-valid with respect to enumeration '[ldpi, mdpi, tvdpi, hdpi, xhdpi, 400dpi, xxhdpi, 560dpi, xxxhdpi]'. It must be a value from the enumeration.
Error parsing /usr/lib/android/android-sdk-linux/system-images/android-22/android-wear/x86/devices.xm

看起来像这样

有趣的是我什至无法关闭它(它一次又一次地出现)。但这不是我的问题。问题是如何使这个 android.support.v4 起作用?正如我认为我已经完成了我需要的一切(将这个库添加到 libs 并建立了依赖项)并且 adb 仍然不想工作(如果我不使用它,它工作得很好 android.support.v4,只是标准功能)

查看错误消息,我怀疑问题是您的 Android 虚拟设备的设置,而不是项目的任何问题。

您是否在包含支持库的实际 Android 设备上尝试过 运行 项目?如果可行,则您的项目设置没有问题。

如果问题出在 AVD 上,正如推测的那样,您需要进入 AVD 管理器并查看设备的设置情况。我自己并不经常使用 VD,但一个潜在的问题是您可能在设置中缺少 Google API。

编辑:

刚刚注意到您对使用 IntelliJ 的澄清。听起来您的 project/IDE AVD 设置有一些问题。通过对工作中的 Android Studio 项目进行比较,可能可以找到并找出问题所在,但您可能会通过简单地安装和使用 [=21] 来节省大量时间和精力=] 工作室。差别不大,但 Studio 中有足够的 Android 特定功能,我认为这是值得的,即使这意味着您安装了两个或更多 IDE。

我刚遇到这个问题:usr/lib/android/android-sdk-linux/system-images/android-22

并删除 android wear 文件夹。

使用文本编辑器打开Android\android-sdk\system-images\android-22\android-wear\armeabi-v7a\devices。xml 搜索 280dpi
将其更改为 hdpi

对 Android\android-sdk\system-images\android-22\android-wear\x86\devices 执行相同操作。xml

关闭日食。重新启动日食。错误应该消失。

如果您正在使用 windows,文件可能位于 C:\Program Files (x86)\Android\android-sdk\system-images\android-22\android-wear\armeabi-v7a\devices.xml C:\Program Files (x86)\Android\android-sdk\system-images\android-22\android-wear\x86\devices.xml

我正在使用 Genymotion,我不需要 android 佩戴图像。我做了以下操作:

  1. 使用 SDK 管理器卸载:

    a) Android 5.1.1 (API 22) -> Android 佩戴 ARM EABI v7a 系统映像

    b) Android 5.1.1 (API 22) -> Android 使用 Intel x86 Atom 系统映像

  2. 已使用 AVD 管理器删除所有设备并创建新设备。

适合我。

android Studio 的解决方案。 打开 sdk 管理器

删除Android Wear ARM EABI v7a 系统映像和Android Wear Intel x86 Atom 系统映像数据包。 @gosha 被告知 true.works 我。

使用 Android SDK 管理器删除这 2 个包。

  1. A​​RM EABI v7a 系统映像
  2. Android 使用 Intel x86 Atom 系统映像

在此处查看图像 link 以获得更多说明。 http://i.stack.imgur.com/wq2tK.png

错误的原因是安装在plugins/android/lib/.

下的android插件idea使用的android版本

我可以看到这应该在 IDEA 15 中解决,因为它将在插件中使用更高版本的 android。该版本在 devices-2.xsd 中有一个 280dpi 条目,打包在 sdk-tools.jar.

我试图破解当前 devices-2.xsd 的入口,但这会导致插件稍后完全失败。 所以不要尝试这样做!

如果您不进行磨损开发,那么从平台映像中删除这些目录的答案是有效的。

您还可以 解决 问题,方法是定位烦人的错误对话框,这样就可以了,按钮位于您尝试点击的元素上方 选择它下方的 Device 对话。然后双击。乏味,但你确实做到了。

我们可以看到错误:我们可以获取信息,这个错误是关于 sdk/system-iamges/android-22/android-wear iamge。

所以我们可以删除sdk/system-iamges/android-22/android-wear目录。对我有用!

错误解决方法:-

  1. 卸载Android安装ARM EABI v7a系统映像。
  2. 卸载Android使用 Intel x86 Atom 系统映像。

重新启动 Android Studio...尽情享受吧!!