Проблема с добавлением библиотеки поддержки gridlayout в проект?

Когда я нажимаю на свой виджет, который использует библиотеку поддержки gridlayout, я получаю эту ошибку:

10-12 17:15:14.373: E/dalvikvm(3957): Could not find class 'com.example.awesomefilebuilderwidget.Drag_and_Drop_App$MyDragListener', referenced from method com.example.awesomefilebuilderwidget.Drag_and_Drop_App.onCreate
10-12 17:15:14.433: E/AndroidRuntime(3957): FATAL EXCEPTION: main
10-12 17:15:14.433: E/AndroidRuntime(3957): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.awesomefilebuilderwidget/com.example.awesomefilebuilderwidget.Drag_and_Drop_App}: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.v7.widget.GridLayout
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1833)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1854)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.app.ActivityThread.access$1500(ActivityThread.java:135)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1041)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.os.Looper.loop(Looper.java:150)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.app.ActivityThread.main(ActivityThread.java:4333)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at java.lang.reflect.Method.invokeNative(Native Method)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at java.lang.reflect.Method.invoke(Method.java:507)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at dalvik.system.NativeStart.main(Native Method)
10-12 17:15:14.433: E/AndroidRuntime(3957): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.v7.widget.GridLayout
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.view.LayoutInflater.createView(LayoutInflater.java:518)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:231)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.app.Activity.setContentView(Activity.java:1712)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at com.example.awesomefilebuilderwidget.Drag_and_Drop_App.onCreate(Drag_and_Drop_App.java:22)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1797)
10-12 17:15:14.433: E/AndroidRuntime(3957):     ... 11 more
10-12 17:15:14.433: E/AndroidRuntime(3957): Caused by: java.lang.reflect.InvocationTargetException
10-12 17:15:14.433: E/AndroidRuntime(3957):     at java.lang.reflect.Constructor.constructNative(Native Method)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.view.LayoutInflater.createView(LayoutInflater.java:505)
10-12 17:15:14.433: E/AndroidRuntime(3957):     ... 20 more
10-12 17:15:14.433: E/AndroidRuntime(3957): Caused by: java.lang.NoClassDefFoundError: android.support.v7.gridlayout.R$dimen
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.support.v7.widget.GridLayout.<init>(GridLayout.java:255)
10-12 17:15:14.433: E/AndroidRuntime(3957):     at android.support.v7.widget.GridLayout.<init>(GridLayout.java:274)
10-12 17:15:14.433: E/AndroidRuntime(3957):     ... 23 more

Я следовал официальным рекомендациям разработчиков Android, чтобы добавить библиотеку поддержки в свой проект, но все еще получаю ошибки.

Поскольку я считаю, что это более или менее моя ошибка где-то по линии, вот шаги, которые я предпринял, чтобы добавить это:

1) Пошел в Файл-> Импорт-> Существующий код Android в рабочую область-> нашел файл gridlayout v7 и нажал «Готово».

2) Перешел к пакету поддержки gridlayout и в папку libs, щелкнул правой кнопкой мыши файл .jar и добавил его в свой путь сборки (я сделал то же самое с файлом bin)

3) Нажал на мой собственный проект- > Свойства- > Панель библиотеки- > Добавить JAR (как показано ниже)

введите здесь описание изображения

Затем у меня также есть вкладка заказа и экспорта, как указано ниже:

введите здесь описание изображения

Затем две библиотеки появляются в моих проектах в разделе «Библиотеки, на которые ссылаются». введите здесь описание изображения

Но независимо от того, что я делаю, я все равно получаю ту же ошибку. Правильно ли я поступил?


person user1628978    schedule 12.10.2013    source источник


Ответы (1)


Ваши действия неверны. Вместо этого:

3) Нажал на мой собственный проект- > Свойства- > Панель библиотеки- > Добавить JAR (как показано ниже)

Сделайте это (из раздела Добавление библиотек с ресурсами раздел в инструкции):

  1. В Project Explorer щелкните проект правой кнопкой мыши и выберите «Свойства».
  2. На панели «Библиотека» нажмите «Добавить».
  3. Выберите проект библиотеки и нажмите OK. Например, проект appcompat должен быть указан как android-support-v7-appcompat.
  4. В окне свойств нажмите ОК.

За исключением использования gridlayout вместо appcompat, конечно

Кроме того, остальные шаги, которые вы проделали (на вкладке «Сборка и экспорт»), должны быть выполнены для проекта gridlayout, а не для вашего собственного проекта (это также подробно описано в том же разделе инструкций).

person Joe    schedule 12.10.2013
comment
Хорошо спасибо! Я также заметил, что запутался в том, что такое панель библиотеки, поэтому я понял, что это было в разделе Android. - person user1628978; 13.10.2013