Как добавить библиотеку (android-support-v7-appcompat) в IntelliJ IDEA
Я создал проект, скопировал файлы ресурсов в проект, библиотеку, добавил его в структуру проекта, прописал стиль Theme.AppCompat.
Скомпилирован без ошибок, но при запуске исключения вылета:
08-03 00:50:00.406: ERROR/AndroidRuntime(4055): FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$styleable
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:98)
at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:58)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
at com.example.SampleMetrRost.CentralActivity.onCreate(CentralActivity.java:12)
at android.app.Activity.performCreate(Activity.java:4636)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1051)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1924)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1985)
at android.app.ActivityThread.access0(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4476)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:816)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:583)
at dalvik.system.NativeStart.main(Native Method)
9 ответов:
Без Gradle В ( Нажмите здесь для решения Gradle)
импортируйте проект библиотеки в Intellij из проекта Eclipse (этот шаг применяется только в том случае, если вы создали свою библиотеку в Eclipse).
щелкните правой кнопкой мыши на модуле и выберите Открыть Настройки модуля.
настройка библиотек V7 jar файл
модуль библиотеки настроек v7
настройка модуля приложения зависимость модуля библиотеки v7
С Помощью Gradle
если вы используете Gradle, вы можете добавить его как
compileзависимость.- инструкции
убедитесь, что у вас есть
Android Support Repositoryустановлен пакет SDK. Android Studio автоматически распознает этот репозиторий во время процесса сборки (не уверен в простом IntelliJ).
добавить зависимость к
{project}/build.gradledependencies { compile 'com.android.support:appcompat-v7:+' }нажмите .
EDIT: похоже, эти же инструкции находятся на документация под
Adding libraries with resources -> Using Android Studio.
С Помощью Maven
прежде всего, вы должны установить библиотеки android в свой локальный репозиторий maven с помощью Maven Android SDK Deployer
затем вы можете добавить зависимость к вашему pom следующим образом:
<dependency> <groupId>android.support</groupId> <artifactId>compatibility-v7-appcompat</artifactId> <version>${compatibility.version}</version> <type>apklib</type> </dependency> <dependency> <groupId>android.support</groupId> <artifactId>compatibility-v7-appcompat</artifactId> <version>${compatibility.version}</version> <type>jar</type> </dependency>
Это мое решение:
скопируйте и вставьте $ANDROID_SDK / extras / android / support/v7 / appcompat в корень вашего проекта
откройте " структура проекта "на Intellij, нажмите" модули "на" настройки проекта", затем нажмите"appcompat"->"android", убедитесь, что флажок "модуль библиотеки" установлен.
нажать "свой-имя_проекта" по "совместимости приложений", отключите "Android-поддержка-В4" и "Android-поддержка-В7-совместимости"; обеспечить флажок перед тем, как" appcompat " проверяется. И, нажмите кнопку "ОК", чтобы закрыть диалог" структура проекта".
вернуться к главному окну, нажмите кнопку "appcompat"->"libs" в верхней левой области проекта. Щелкните правой кнопкой мыши на "android-support-v4", выберите меню" Добавить как библиотеку", измените" добавить в модуль "на"ваш-проект". То же самое с "android-support-v7-compat".
после выполнения выше, intellij должен быть в состоянии правильно найти android-поддержка-XXXX модули.
Удачи!
еще одно простое решение-вставить эти строки в сборку.gradle file
dependencies { //import of gridlayout compile 'com.android.support:gridlayout-v7:19.0.0' compile 'com.android.support:appcompat-v7:+' }
другое решение для maven (и лучшее решение, по крайней мере для меня) - использовать репозиторий maven, включенный в локальный Android SDK. Для этого просто добавьте новый репозиторий в свой pom, указав на локальный Android SDK:
<repository> <id>android-support</id> <url>file://${env.ANDROID_HOME}/extras/android/m2repository</url> </repository>после добавления этого репозитория вы можете добавить стандартную зависимость Google следующим образом:
<dependency> <groupId>com.android.support</groupId> <artifactId>support-v13</artifactId> <version>${support-v13.version}</version> </dependency> <dependency> <groupId>com.android.support</groupId> <artifactId>appcompat-v7</artifactId> <version>${appcompat-v7.version}</version> <type>aar</type> </dependency>
Как библиотечный проект
вы должны добавить ресурсы в проект библиотеки в соответствии с http://developer.android.com/tools/support-library/setup.html
раздел > добавление библиотек с ресурсами
затем вы добавляете
android-support-v7-appcompatбиблиотека в рабочей области, а затем добавить его в качестве ссылки на проект приложения.определение всех ресурсов в вашем проекте приложения также будет работать (но есть много определения добавить, и вы пропустили некоторые из них), и это не рекомендуемый подход.
Это мое решение, оно очень похоже на предыдущее:
<dependency> <groupId>com.google.android</groupId> <artifactId>support-v7</artifactId> <scope>system</scope> <systemPath>${android.home}/support/v7/appcompat/libs/android-support-v7-appcompat.jar</systemPath> <version>19.0.1</version> </dependency>где {android.home} - это корневой каталог Android SDK, и он использует systemPath вместо хранилище.
Как обновление ответ Остина Махони, конфигурация 'compile' устарела и была заменена на 'implementation' и 'api'.
Он будет удален в конце 2018 года. Для получения дополнительной информации см. здесь.




Comments