【问题标题】:using android.support.v4 library in Intellij idea在 Intellij IDEA 中使用 android.support.v4 库
【发布时间】:2015-10-21 07:28:47
【问题描述】:

在我的 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某处拍摄的

Idea 使这段代码完全正常

当我尝试启动它时,问题就开始了。当我按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,它工作得非常好,只是标准功能)

【问题讨论】:

  • 你的 build.gradle 文件是什么样的?
  • @MichaelA。其实我是一个新手,所以我什至不知道它是什么,也不使用它。当我开始这个项目时,我只选择了Android -&gt; Application Module,而不是Gradle: Android Module。你认为使用它可以解决我的问题吗?
  • Android Studio 无论如何都使用 gradle 作为其构建系统。 build.gradle 文件由 GUI 自动生成(尽管手动编辑它们通常很有用)。您应该至少有两个 - 一个在项目的根目录中,一个在每个模块目录中。我建议了解他们,但在这种情况下,这可能不是你的问题。
  • @MichaelA。我不知道这是否很重要,但我使用的是 Intellij Idea 而不是 Android Studio(尽管据我所知,这几乎是一回事)。我尝试从 Android Studio 构建它。它仍然出现错误,但没有显示此恶魔警报
  • 刚刚注意到这一点。是的。

标签: java android intellij-idea adb


【解决方案1】:

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

  1. 使用 SDK 管理器卸载:

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

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

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

为我工作。

【讨论】:

  • 感谢一个不错的解决方案。但这不一定是android 5.1.1,对我来说是6.0。
  • 应该比只安装整个 6X 文件夹更好。 +1
  • 我的问题是在我安装 6.0 时出现的,因为我以前的版本没有检查这些东西可能是因为它们不存在所以添加 6.0 的升级破坏了一些东西。删除 6.0 使事情像以前一样工作。现在我添加了 6.0 的一部分,但省略了 android 磨损。感谢您的回答。快速解决了看似困难的问题。
  • 我刚刚删除了 Wear 图片,问题就消失了
【解决方案2】:

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

并删除 android wear 文件夹。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      错误解决方案:-

      1. 卸载 Android Wear ARM EABI v7a 系统映像。
      2. 卸载 Android Wear Intel x86 Atom 系统映像。

      重新启动 Android Studio...开始享受吧!!

      【讨论】:

        【解决方案5】:

        使用 Android SDK Manager 删除这 2 个包。

        1. ARM EABI v7a 系统映像
        2. Android Wear Intel x86 Atom 系统映像

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

        【讨论】:

          【解决方案6】:

          使用文本编辑器打开 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

          【讨论】:

          • 这没有帮助。唯一的变化是现在错误中的 280hdpi 而不是 280dpi
          【解决方案7】:

          查看错误消息,我怀疑问题出在您的 Android 虚拟设备的设置上,而不是与项目有关。

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

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

          编辑:

          刚刚注意到您对使用 IntelliJ 的说明。听起来您的 AVD 项目/IDE 设置有一些问题。通过对工作中的 Android Studio 项目进行差异分析可能可以找出问题所在,但您可能只需安装和使用 Android Studio 就可以节省大量时间和精力。差别不大,但 Studio 中有足够多的 Android 特定功能,即使这意味着您安装了两个或更多 IDE,我认为还是值得的。

          【讨论】:

          • 我没有尝试,因为我无法运行它。每次我单击run 时都会发生此错误,我无法关闭它。没有android.support.v4,它可以在我的设备上完美运行。除了点击run,我不知道在手机上运行我的应用程序的任何其他方式
          • 您发布的错误消息暗示您正试图在 AVD 上运行它。使用 USB 数据线连接您的实际 Android 设备,在终端中运行“adb devices”以验证它是否已连接,然后进入“运行 >> 编辑配置”,找到“目标设备”并将其设置为“显示选择器对话框” "(取消选中使用同一设备...)或将其设置为 USB 设备。
          • 注意,您应该在您使用的 Android 设备上启用侧载(安装非 Google-Play 商店应用)和 USB 调试。
          • 我的设备已连接并启用了 USB 调试模式。 “目标设备”设置为“显示选择器对话框”,每次单击run 它都会打开,但会出现此错误。所以我不能选择任何东西。此外,正如我现在发现的那样,即使我按照您的建议单击 Run &gt;&gt; Edit Configurations 也会发生此错误,因此我什至无法对其进行编辑。
          • 我尽了最大的努力并快速单击以关闭错误并选择我的设备。是的,它可以在我的手机上运行,​​但仍然会出现这个无休止的错误
          【解决方案8】:

          错误原因是idea在plugins/android/lib/下安装的android插件中使用的android版本。

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

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

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

          您还可以通过定位烦人的错误对话框解决问题它。然后双击。乏味,但你确实做到了。

          【讨论】:

          • 实际上我会反对接受它的建议(双击技巧)。在我的尝试中,很有可能第二次单击只会让选择设备上的确定按钮获得焦点(按钮本身突出显示),而不是实际启动我的设备。最终,Android Studio 中的所有窗口都被冻结(错误对话框无法正常工作,因为 UI 焦点由选择设备的确定保持,选择设备对话框被错误对话框掩盖),我别无选择,只能通过任务管理器将它们全部杀死。
          【解决方案9】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-05-25
            • 1970-01-01
            • 2012-12-25
            • 1970-01-01
            • 2013-08-20
            • 2015-12-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多