2011-06-13 24 views
73

Logré reestructurar mi aplicación bastante bien de modo que, excepto por unos pocos métodos en una clase de actividad derivada, todo esté en un proyecto de biblioteca.¡No se pudo encontrar Library.apk!

Funciona muy bien, a excepción de la consola de que Eclipse (no LogCat!) Emite el siguiente mensaje de error:

[2011-06-13 19:54:08 - MyLibrary] Could not find MyLibrary.apk! 

Limpié ambos proyectos (biblioteca y aplicación), reiniciar Eclipse, reconstruido los proyectos, pero este extraño mensaje de error persiste.

¿Qué significa este mensaje de error? (especialmente a la luz que todo parece estar funcionando bien)

¿Cómo me deshago de él?

ACTUALIZACIÓN: Intenté eliminar el proyecto y luego volver a importarlo de acuerdo con la sugerencia a continuación. No ayudó. Luego encontré this thread que me ayudó a darme cuenta de que tenía <uses-library> en el AndroidManifest.xml de la aplicación que hace referencia a MyLibrary. Lo eliminé, limpié el proyecto y lo reconstruí. El problema persiste.

Ahora sospecho que este es un "problema real", p. mala configuración de algunos caminos o algo más de mi parte. ¿Qué podría ser?

Respuesta

162

¡He encontrado el origen del problema!

Resulta que "con la nueva función de biblioteca, no especifica los proyectos de Android de los que depende en la sección Ruta de compilación de Java de las Propiedades. Lo hace en la sección Android de las Propiedades".

Así que todo lo que tenía que hacer es ir del proyecto de aplicación Properties, golpeó la pestaña Projects, seleccionar mi propio proyecto de biblioteca y haga clic en el botón Remove. Eso es. No más problema

En Eclipse Java EE seleccione las propiedades del proyecto, a continuación, seleccione Project References, a continuación, active la FacebookSDK (ver captura de pantalla) enter image description here

Gracias a Lance Nanek!

+1

Eso lo hizo, funcionó ahora. – sabbour

+0

No tengo ningún proyecto de mi propia biblioteca en mi aplicación, pero aun así obtuve este error. Entonces, ¿cuál es la solución para ello? –

+0

si eso no funciona, reiniciar eclipse funcionará después de esto. – ercu

1

Ha intentado eliminar el proyecto sin eliminarlo del disco duro y volver a importar el proyecto. Eso pareció funcionar para mí cuando tuve este problema.

+2

¿Está diciendo que la programación hoy en día se ha vuelto más como Voodoo y menos como ciencia? :) Probaré tu sugerencia e informaré. Mientras tanto, +1 por el intento de ayudar. – an00b

+0

Acabo de intentar eliminar el proyecto ** de la aplicación ** solo luego de volver a importarlo. ** No ayudó **. Ahora intentaré eliminar el proyecto de la biblioteca ... – an00b

+0

Acabo de intentar eliminar el proyecto ** library ** y luego volver a importarlo. ** No ayudó **. Ahora sospecho que esto es ** un problema real **, p. mala configuración de algunos caminos o algo más de mi parte. ¿Qué podría ser? – an00b

0

Al usar las Preferencias de Eclipse puede terminar agregando libs por todas partes. Tenía una lib referenciada en/libs y carpetas de Bibliotecas referenciadas. Tuve que quitar o eliminarlos de estos lugares y la inserta en las dependencias de Android (usando Preferencias -> Android y navegación por debajo de la "es la biblioteca" casilla de verificación.)

El diseño correcto para mi proyecto: http://www.pasteall.org/pic/show.php?id=34513

4

Eso es interesante ... yo no bastante hacer lo especifica la respuesta ..

tengo un proyecto androide separado llamado "ConnectionHandler", que se conecta a un servicio web para recuperar la información. Este proyecto no contiene clases de actividades. (Si lo hiciera, requeriría cambios en el archivo AndroidManifest en su Aplicación Principal, así como también siguiendo las instrucciones a continuación).

usar mi proyecto independiente ConnectionHandler como una biblioteca que tenía que hacer lo siguiente:

  1. En la aplicación Principal> Seleccionar las propiedades del proyecto> Ir a Java Build Path> Añadir tarros> Seleccione el carpeta bin de ConnectionHandler> choose connectionhandler.jar
  2. En el proyecto ConnectionHandler> Seleccionar propiedades de proyecto> Android> Comprobar isLibrary
  3. En MainApplication> Seleccionar propiedades de proyecto> Ir a Android > Agregue referencia a ConnectionHandler en la sección Biblioteca.

Esto funciona para mí , y soy capaz de conectar a mi servicio web, a pesar de que no tengo los archivos de origen que hacer esto en mi aplicación principal. Todo está contenido dentro de mi tarro ConnectionHandler que se está haciendo referencia ..

Espero que esto ayude a alguien ...

2

Hoy empecé a recibir este mensaje de error en la vista de la consola de Eclipse, pero resulta que esto no era el problema. Mi aplicación se compilará e instalará en mi dispositivo, e incluso se ejecutará durante una fracción de segundo (hasta que se bloquee). Esto es lo que mi vista de la consola parecía en Eclipse:

[2013-06-03 09:42:25 - my-android] Android Launch! 
[2013-06-03 09:42:25 - my-android] adb is running normally. 
[2013-06-03 09:42:25 - my-android] Performing com.my.android.activity.MainActivity activity launch 
[2013-06-03 09:42:25 - my-android] Uploading my-android.apk onto device '650rfs2e' 
[2013-06-03 09:42:31 - my-android] Installing my-android.apk... 
[2013-06-03 09:42:35 - my-android] Success! 
[2013-06-03 09:42:36 - my-other-android] Could not find my-other-android.apk! 
[2013-06-03 09:42:36 - android-SherlockFragment] Could not find android-SherlockFragment.apk! 
[2013-06-03 09:42:36 - my-android] Starting activity com.my.android.activity.MainActivity on device 650rfs2e 
[2013-06-03 09:42:36 - my-android] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.my.android/.activity.MainActivity } 

Pero Tras un examen minucioso de mi LogCat, hubo una excepción tonta que es lanzado desde un fragmento que estaba tratando de inicializar. Una vez que arreglé mi fragmento (que estaba generando un NPE), todo salió bien, incluso a través de mi consola todavía me dice que no puede encontrar esos APK de la biblioteca.

0

Para mí, la razón por la que esto sucedía era que el proyecto de la biblioteca y el proyecto principal tenían el mismo paquete. La forma más fácil de cambiar el paquete es a right click on the library project > Android Tools > Rename Application Package.

0

La solución a este problema para mí fue eliminar las entradas erróneas del archivo Manifiesto de los proyectos de la biblioteca.

El bloqueo solo se produce en el tiempo de ejecución cuando alcanza el primer uso de mi proyecto de biblioteca. Una vez que cambio la propiedad Nombre de la aplicación para reflejar la clase de aplicación correcta para el proyecto que usó el proyecto de biblioteca, funcionó

Cuestiones relacionadas