Как добавить библиотеку (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)
1858   9  

9 ответов:

Без Gradle В ( Нажмите здесь для решения Gradle)

  1. создать проект библиотеки поддержки.

  2. импортируйте проект библиотеки в Intellij из проекта Eclipse (этот шаг применяется только в том случае, если вы создали свою библиотеку в Eclipse).

  3. щелкните правой кнопкой мыши на модуле и выберите Открыть Настройки модуля.

  4. настройка библиотек V7 jar файл Setup libraries of v7 jar file

  5. модуль библиотеки настроек v7 Setup library module of v7

  6. настройка модуля приложения зависимость модуля библиотеки v7 Setup app module dependency of v7 library module

С Помощью Gradle

если вы используете Gradle, вы можете добавить его как compile зависимость.

- инструкции

  1. убедитесь, что у вас есть Android Support Repository установлен пакет SDK. Android Studio автоматически распознает этот репозиторий во время процесса сборки (не уверен в простом IntelliJ).

    Android Support Repository

  2. добавить зависимость к {project}/build.gradle

    dependencies {
        compile 'com.android.support:appcompat-v7:+'
    }
    
  3. нажмите .

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>

Это мое решение:

  1. скопируйте и вставьте $ANDROID_SDK / extras / android / support/v7 / appcompat в корень вашего проекта

  2. откройте " структура проекта "на Intellij, нажмите" модули "на" настройки проекта", затем нажмите"appcompat"->"android", убедитесь, что флажок "модуль библиотеки" установлен.

  3. нажать "свой-имя_проекта" по "совместимости приложений", отключите "Android-поддержка-В4" и "Android-поддержка-В7-совместимости"; обеспечить флажок перед тем, как" appcompat " проверяется. И, нажмите кнопку "ОК", чтобы закрыть диалог" структура проекта".

  4. вернуться к главному окну, нажмите кнопку "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

    Ничего не найдено.