Could not find Library.apk!

AndroidApkAndroid LibraryLibrary Project

Android Problem Overview


I managed to restructure my application pretty nicely so that, except for a few methods in a derived Activity class, everything is in a Library Project.

It works beautifully, except that Eclipse's Console (not LogCat!) issues the following error message:

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

I cleaned both projects (library and application), restarted Eclipse, re-built the projects, but this weird error message persists.

What does this error message mean? (especially in light that everything seems to be running OK)

How do I get rid of it?

UPDATE: I tried removing the project then re-importing it per the suggestion below. It didn't help. I then found this thread that helped me realize that I had <uses-library> in the application's AndroidManifest.xml referring to MyLibrary. I deleted it, cleaned the project and rebuilt. The problem persists.

I am now suspecting this is "real problem", e.g. misconfiguration of some paths or something else on my part. What could it be?

Android Solutions


Solution 1 - Android

I found the source of the problem!

It turns out that "with the new library feature, you don't specify the Android projects you depend on in the Java Build Path section of the Properties. You do it in the Android section of the Properties".

So all I had to do is go the Application Project's Properties, hit the Projects tab, select my own library project and click the Remove button. That's it. No more problem.

In Eclipse Java EE select the project Properties, then select Project References, then check the FacebookSDK (see screen capture) enter image description here

Thanks to Lance Nanek!

Solution 2 - Android

That's interesting... I didn't quite do what the answer specifies..

I have a separate android project called "ConnectionHandler" which connects to a webservice to retrieve information. This project contains no activity classes. (If it did, you would require changes to the AndroidManifest file in your Main Application, as well as following the instructions below).

To use my seperate ConnectionHandler project as a library I needed to do the following:

  1. In the Main Application > Select project properties > Go to Java Build Path > Add Jars > Select the bin folder of ConnectionHandler > choose connectionhandler.jar
  2. In the ConnectionHandler project > Select project properties > Android > Check isLibrary
  3. In the MainApplication > Select project properties > Go to Android > Add reference to ConnectionHandler in the Library section.

This works for me, and I am able to connect to my webservice, even though I have no source files to do this in my main application. Everything is contained within my ConnectionHandler jar that is being referenced..

Hope this helps someone...

Solution 3 - Android

Today I started getting this error message on the Console view of Eclipse, but it turns out that this was not the problem. My application would be built and installed on my device, and even ran for a fraction of a second (until it crashed). This is what my Console view looked like on 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 }

But upon close inspection of my LogCat, there was a silly exception being thrown from a fragment I was trying to initialize. Once I fixed my fragment (which was raising an NPE), everything worked out just fine, even through my console still tells me it can't find those library APK's.

Solution 4 - Android

Have you tried removing the project without deleting from the harddrive and reimporting the project. That seemed to work for me when I had this problem.

Solution 5 - Android

Using the Eclipse Preferences you can end up with libs getting added all over the place. I had a referenced lib in /libs and Referenced Libraries folders. I had to remove or delete them from these locations and insert it at Android Dependencies (using Preferences -> Android and browsing below the "Is Library" checkbox.)

The correct layout for my project: http://www.pasteall.org/pic/show.php?id=34513

Solution 6 - Android

For me, the reason this was happening was that the library project and the main project had the same package. The easiest way to change the package is to right click on the library project > Android Tools > Rename Application Package.

Solution 7 - Android

The solution to this problem for me, was to remove erroneous entries from the library projects' Manifest file.

The crash would only occur at runtime when it hit the first usage of my library project. Once I change the Application Name property to reflect the correct application class for the project that used the library project, then it worked

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionan00bView Question on Stackoverflow
Solution 1 - Androidan00bView Answer on Stackoverflow
Solution 2 - AndroidshecodesthingsView Answer on Stackoverflow
Solution 3 - Androidrodrigo-silveiraView Answer on Stackoverflow
Solution 4 - AndroidNovazeroView Answer on Stackoverflow
Solution 5 - AndroiddarKoramView Answer on Stackoverflow
Solution 6 - AndroidJarett MillardView Answer on Stackoverflow
Solution 7 - AndroidShaneView Answer on Stackoverflow