2015-10-21 125 views
24

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

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

之后,我把它添加到classpath这样的:

my project settings

所以我有这样的代码在我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> 

这一个我花了一些时间E在developer.android.com

理念呈现此代码完全罚款

how idea renders this code

当我试图启动它的问题开始。当我按下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 

它看起来像这样

Error message

有趣的事情下面的错误是,我甚至不能关闭它(这一次又一次的出现) 。但那不是我的问题。问题是如何使这个android.support.v4工作?因为我认为我已经完成了我所需要的任何事情(将此库添加到libs并生成依赖关系)和adb仍然不想工作(它工作得非常好如果我不使用android.support.v4,只是标准功能)

+0

你的build.gradle文件是什么样子的? –

+0

@MichaelA。其实我是一个全新手,所以我甚至不知道它是什么,也不用它。当我开始这个项目时,我只是选择了'Android - > Application Module',而不是'Gradle:Android Module'。你认为使用它可以解决我的问题吗? – PepeHands

+0

无论如何,Android Studio都使用Gradle作为构建系统。 build.gradle文件是由GUI自动生成的(尽管手动编辑它们通常很有用)。您应该在项目的根目录中至少有两个 - 每个模块目录中有一个。我建议开始了解他们,但在这种情况下,这可能不是你的问题。 –

回答

55

我正在使用Genymotion,并且我不需要android穿戴图片。我当时以下:

  1. 卸载使用SDK经理:

    一)的Android 5.1.1(API 22) - > Android的磨损ARM EABI V7A系统映像

    B)的Android 5.1.1( API 22) - > Android Wear Intel x86 Atom系统图像

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

适合我。

+4

Thanx的一个很好的解决方案。但这不一定是android 5.1.1,对我来说是6.0。 –

+0

感谢它的魅力! – Lilo

+3

应该知道比只安装整个6X文件夹更好。 +1 – flakes

0

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

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

如果问题是AVD,正如您猜测的那样,您需要进入AVD管理器并查看设备设置的外观。我自己并不使用VD,但有一个潜在的问题是您可能会在设置中缺少Google API。

编辑:

刚刚注意到您使用IntelliJ的说明。这听起来像你的AVD项目/ IDE设置有一些问题。通过在工作的Android Studio项目上进行差异化,找出并解决问题的方式可能是可能的,但通过安装和使用Android Studio,您可能会节省大量时间和精力。它并没有太大的差别,但Studio中有足够的Android特有功能,即使它意味着您安装了两个或更多的IDE,我认为它是值得的。

+0

我没有尝试,因为我无法运行它。每次我点击'运行'这个错误发生,我不能关闭它。没有'android.support.v4',它可以在我的设备上完美运行。我不知道任何其他方式在手机上运行我的应用程序,除非点击'运行' – PepeHands

+0

您发布的错误消息意味着您试图在AVD上运行此应用程序。使用USB电缆连接实际的Android设备,在终端中运行“adb devices”以验证它已连接,然后进入“运行>>编辑配置”,找到“目标设备”并将其设置为“显示选择器对话框“(取消选中使用相同的设备...)或将其设置为USB设备。 –

+0

请注意,您应该在您使用的Android设备上进行侧载(安装非Google-Play商店应用)和启用USB调试。 –

12

我只是有这个问题,请到这里:usr/lib/android/android-sdk-linux/system-images/android-22

,并删除了Android磨损文件夹。

+0

就像一个魅力。 –

1

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

做同样为Android \ Android的SDK \系统图像\ Android的22 \ Android的磨损\ 86 \ devices.xml

关闭蚀。重新开启eclipse。错误应该消失。

如果您使用的是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

+0

这没有帮助。唯一的变化是,现在它的错误'280hdpi'而不是'280dpi' – PepeHands

7

解决方案对于android Studio。 Open sdk manager

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

+1

对我而言。 – mohsinali1317

5

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

  1. ARM EABI V7A系统映像
  2. Android Wear英特尔凌动x86的系统映像

观看图片链接在这里更多的澄清。 http://i.stack.imgur.com/wq2tK.png

0

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

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

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

如果你没有做磨损开发,那么说从平台图像中删除这些目录的答案是有效的。

您也可以通过定位烦人的错误对话的问题生活所以它的确定按钮是在其曾经元素你想在单击选择设备在其下方对话。然后双击。单调乏味,但你确实到达那里。

+0

其实我会反对与之共存的建议(双击技巧)。在我的尝试中,第二次点击只会让选择设备上的确定按钮获得焦点(按钮本身突出显示)而非实际启动设备的可能性很大。最终,Android Studio中的所有窗口都被冻结(由于选择设备的确定,选择设备对话框被错误对话框掩盖,所以错误对话框不工作,因为我没有选择,只能通过任务管理器全部杀死它们。 – Rabby250

0

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

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

7

错误解决方案: -

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

重新启动Android Studio ...并享受!

enter image description here

相关问题