ClassNotFoundException для android.view.Space при запуске приложения - PullRequest
4 голосов
/ 26 ноября 2011

У меня проблема с запуском приложения, когда в макете моей деятельности есть определенные элементы.У меня есть следующий макет, и у меня возникает проблема, когда я включаю элемент «Пробел»:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical" >

<Button
       android:id="@+id/button1"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:layout_alignParentLeft="true"
       android:text="@string/foursquare" />

<Button
      android:id="@+id/button2"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_above="@+id/foursquare_button"
      android:layout_alignParentLeft="true"
      android:text="@string/yelp" />

<Space
    android:layout_width="match_parent"
    android:layout_height="100px"
    android:layout_weight="0.18" />
</LinearLayout>

Я получаю следующую ошибку:

11-2611: 14: 09.875: E / AndroidRuntime (10485): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основное...11-26 11: 14: 09.875: E / AndroidRuntime (10485): java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.infoit.nfc.activity / com.infoit.nfc.activity.ViewTag}: android.view.InflateException: двоичный XML-файл, строка # 23: ошибка надувания класса Space...11-26 11: 14: 09.875: E / AndroidRuntime (10485): вызвано: android.view.InflateException: строка двоичного XML-файла # 23: ошибка надувания класса Space...11-26 11: 14: 09.875: E / AndroidRuntime (10485): Причина: java.lang.ClassNotFoundException: android.view.Space в загрузчике dalvik.system.PathClassLoader [/data/app/com.infoit.nfc.activity-2.apk]...

Если я уберу элемент Пространства, все будет очень увлекательно.Каким-то образом он не может найти класс Space, хотя я думал, что определение xmlns решит проблему.Я чувствую, что это что-то простое, но мне не хватает этого.

Ответы [ 3 ]

7 голосов
/ 26 ноября 2011

Файл xml должен ссылаться на существующие виджеты, определенные платформой или вашим собственным проектом, и Space не является стандартным виджетом Android. Попробуйте заменить его на View.

5 голосов
/ 29 июля 2013

Пространство было введено в API 14, но оно также доступно в поддержке Android v7:

    <android.support.v7.widget.Space
            android:layout_width="match_parent"
            android:layout_height="12dp"/>

Кстати:

  • используйте dp вместо px
  • нет необходимости закреплять android:layout_height в вертикальном LinearLayout с весом
2 голосов
/ 28 февраля 2017

Другие ответы не сработали для меня. Наконец, я изменил его на v4 следующим образом:

android.support.v4.widget.Space

и все работало нормально.

Ссылка на класс: https://developer.android.com/reference/android/support/v4/widget/Space.html

...