¿Cómo agrego una biblioteca (android-support-v7-appcompat) en IntelliJ IDEA?

Creé un proyecto, copié los archivos de recursos en el proyecto, la biblioteca, lo agregué a la estructura del proyecto, prescribí el estilo Theme.AppCompat . Comstackdo sin errores, pero cuando inicia la excepción de descenso:

 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.access$600(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) 

Ayudame por favor. Pasé todo el día hoy.

Sin Gradle ( haga clic aquí para la solución de Gradle )

  1. Crear un proyecto de biblioteca de soporte .

  2. Importe su proyecto de biblioteca a Intellij desde el proyecto Eclipse (este paso solo se aplica si creó su biblioteca en Eclipse).

  3. Haga clic derecho en el módulo y elija Abrir configuración del módulo.

  4. Configurar bibliotecas de archivo jar v7 Configurar bibliotecas de archivo jar v7

  5. Módulo de biblioteca de configuración de v7 Módulo de biblioteca de configuración de v7

  6. Configurar la dependencia del módulo de la aplicación del módulo de biblioteca v7 Configurar la dependencia del módulo de la aplicación del módulo de biblioteca v7

Usando Gradle

Si está utilizando Gradle, puede agregarlo como una dependencia de compile .

Instrucciones

  1. Asegúrese de tener instalado el paquete SDK de Android Support Repository . Android Studio reconoce automáticamente este repository durante el proceso de comstackción (no está seguro acerca de IntelliJ simple).

    Repositorio de soporte de Android

  2. Agregue la dependencia a {project}/build.gradle

     dependencies { compile 'com.android.support:appcompat-v7:+' } 
  3. Haga clic en el botón Sync Project with Gradle Files .

EDITAR : Parece que estas mismas instrucciones se encuentran en la documentación en Adding libraries with resources -> Using Android Studio .

Usando Maven

En primer lugar, debe instalar las bibliotecas de Android en su repository maven local utilizando Maven Android SDK Deployer.

Entonces puede agregar dependencia a su pom de esta manera:

   android.support compatibility-v7-appcompat ${compatibility.version} apklib   android.support compatibility-v7-appcompat ${compatibility.version} jar  

Esta es mi solución:

  1. Copie y pegue $ ANDROID_SDK / extras / android / support / v7 / appcompat en su proyecto ROOT

  2. Abra “Estructura del proyecto” en Intellij, haga clic en “Módulos” en “Configuración del proyecto”, luego haga clic en “appcompat” -> “android”, asegúrese de que la casilla “Módulo de biblioteca” esté marcada.

  3. haga clic en “YOUR-PROJECT_NAME” en “appcompat”, elimine “android-support-v4” y “android-support-v7-compat”; asegúrese de que la checkbox antes de “appcompat” esté marcada. Y, haga clic en “Aceptar” para cerrar el diálogo “Estructura del proyecto”.

  4. de vuelta a la ventana principal, haga clic en “appcompat” -> “libs” en el área superior del proyecto. Haga clic derecho en “android-support-v4”, seleccione menuitem “Agregar como biblioteca”, cambie “Agregar al módulo” a “Su-proyecto”. Lo mismo con “android-support-v7-compat”.

Después de hacer lo anterior, intellij debería ser capaz de encontrar correctamente los módulos android-support-XXXX.

¡Buena suerte!

Otra solución aún simple es pegar estas líneas en el archivo build.gradle

 dependencies { //import of gridlayout compile 'com.android.support:gridlayout-v7:19.0.0' compile 'com.android.support:appcompat-v7:+' } 

Otra solución para maven (y una mejor solución, al menos para mí) es usar el repository maven incluido en el SDK local de Android. Para hacer esto, simplemente agrega un nuevo repository en tu pom apuntando al SDK local de Android:

  android-support file://${env.ANDROID_HOME}/extras/android/m2repository  

Después de agregar este repository, puede agregar la dependencia estándar de Google de esta manera:

  com.android.support support-v13 ${support-v13.version}   com.android.support appcompat-v7 ${appcompat-v7.version} aar  

Como un proyecto de biblioteca

Debe agregar los recursos en un proyecto de biblioteca según http://developer.android.com/tools/support-library/setup.html

Sección> Agregar bibliotecas con recursos

A continuación, agregue la biblioteca android-support-v7-appcompat en su área de trabajo y luego agréguela como referencia al proyecto de su aplicación.

Definir todos los recursos en su proyecto de aplicación también funcionará (pero hay muchas definiciones para agregar y ha omitido algunas), y no es el enfoque recomendado.

Esta es mi solución, es muy similar a la anterior:

  com.google.android support-v7 system ${android.home}/support/v7/appcompat/libs/android-support-v7-appcompat.jar 19.0.1  

Donde {android.home} es el directorio raíz de Android SDK y usa systemPath en lugar de repository .

Como una actualización de la respuesta de Austyn Mahoney , la configuración ‘comstackr’ es obsoleta y ha sido reemplazada por ‘implementación’ y ‘api’.

Se eliminará a fines de 2018. Para obtener más información, consulte aquí .