Eclipse Android: how to use a library project with linked folders? - android

If I have simple android library (set with project->properties->android->Library) with linked folders, the linked folders are not included in the application using the library.
Choosing a library project will add a link in the application project to the library's 'src' folder and all real folders, but it will ignore any linked folders in the Library project.
---Edit: this actually works with more recent Eclipse and adt---
I can add the library as a project dependency (project->properties->javabuildpath->project) - this will make Eclipse aware of the classes in the linked folders, and fix the compile errors in Eclipse, but will not include the library classes in the apk itself and the app will fail with java.lang.NoClassDefFoundError.
What is your suggestion on using a library project with source folders linked in from outside of the library project's main folder?

The solution was under my nose all the time:
Apparently with a more recent version of eclipse and/or android tools it is enough to add the library as a project dependency project -> properties -> javabuildpath -> project.
No need to use the android library setting at all project -> properties -> android.
I am now using eclipse Helios (3.6) with Android tools 10.0.1, and it works in this combination.

Related

Compile errors in new Android project in Eclipse

I'm using Eclipse for build an Android project. when I try to open bellow item :
file --> new --> Android Application Project
Then when the project is built a series errors displayed :
I am a beginner in this regard and thank you for your help.
Open AppCompactv7 and add as library on your project
The problem is with your appcompat_v7 project. Delete the existing project one in the workspace and re-import it from
\sdk\extras\android\support\v7\appcompat
After that try cleaning the project.
Project -> select Clean -> select the project.
1 - Make sure library project(appcompat_v7) is open & is proper referenced (added as library) in your application project.To do this follow this steps: right click in your project -> "Properties - Android - Add"
2 - Delete android-support-v4.jar from your project's libs folder(if jar is present).
3 - Appcompat_v7 must have android-support-v4.jar & android-support-v7-appcompat.jar inside it's libs folder. (If jars are not present copy them from /sdk/extras/android/support/v7/appcompat/libs folder of your installed android sdk location)
4- Check whether ActionBarActivity is properly imported. (In your case this is right)
import android.support.v7.app.ActionBarActivity;
Here is a good example of how to create a project in Eclipse using v7 Support Library
Finally because you are a beginner I'll recommend you to use Android Studio as it is the official environment for developing for Android. Configuring the SDK can be quite a pain in Eclipse. You can also take advantage of the Gradle dependency system and simply specify which libraries you would like to use and Android Studio will automatically fetch the jars from online remotes as required. I think its the future of Android Application Development.

Eclipse -> Android Studio migration: how to include v4 support library (also including the ant build script)

I have a setup of android project on eclipse and I want to migrate to Android Studio. So, I have android-support-v4.jar that I use for my main project and my Facebook lib-project.
I guess I have to exclude lib-projects as a folder in my main module (lets call the main module Jack). Jack has dependancy on the facebook lib-project.
How should I define the android-support-v4.jar as a separate library and use it in both projects? Or should I just use directly the jar files and leave them in both Jack's libs folder and Facebook libs folder?
If the first option should be done, will ant clean release still work (with the build.xml android generated file)?
In Android Studio, builds are done with Gradle now. Gradle is different. With gradle, you tell your project which jar's you need, and it will connect to a server and download them if it doesn't already have them when you compile your apk.
A few things to note:
When you install Android Studio, it has it's own Android sdk directory. You have to download everything from the sdk downloader (from inside the Android Studio App) again. Don't bother trying to switch the sdk download path to your current one. You will only encounter bugs (Or at least I did).
So your question is worded very confusingly. It sounds like you have a main module, and then you have a library module, and the library module uses the support library.
You'll need to set it up so the main module has a dependency on your library module. From there, you'll need to go into your library module's gradle file and tell it that you want to include the android support library
dependencies {
compile 'com.android.support:appcompat-v7:19.0.0'
}
The support library is a little weird in gradle. Gradle normally would download the dependencies you need. However, android studio requires that you have the support library installed through their sdk downloader (top-right group of icons in android studio. The download icon).
After you get all your dependencies entered into your gradle file, you'll then need to go to Tools -> Android -> Sync gradle files with project. From there compile errors should go away, and you should be able to run the project.
Best of luck. By the way, Here is the documentation on Gradle on the android website. I find myself having to go to it A LOT, especially when I made the switch from Eclipse to Android Studio. This + Various tutorials I found as needed via google. http://tools.android.com/tech-docs/new-build-system/user-guide
EDIT: This link might also be helpful. Google has some steps for switching from eclipse to Android Studio: http://developer.android.com/sdk/installing/migrate.html That with some of the stuff above may prove helpful.
While I haven't tried this myself, I suggest you use the recommended migration steps provided by Google in this article.
Before you do that, though, make sure that you either:
Check that both support libraries on the main project and dependencies have the same version (Eclipse will complain about it during build time, and will likely cause problems during conversion to Gradle script.); OR,
Uncheck the "Android Private Libraries" entry on the Order and Export tab of the dependency project's build settings.
If the migration process described doesn't work smoothly for you, you can always call the Ant build script from within the Gradle script, as described here.
The Android Studio uses only Gradle, but you can export Android ant project from eclipse.
To do that go to File -> import project usually next, next, next... works.
If not go to project setting Shift + Ctrl + Alt + S and under modules -> PROJECT_NAME -> Dependencies you can add your support library.
To add a Facebook library you must add it as another module to your project.
If you still want to use Ant there is another option: Use Intellij IDEA which support Ant.

How to add external libraries to my application in android

I have an application that I have to look at as a training exercise. It has used few external libraries such as SlidingMenu, ImageViewZoom and ActionbarSherlock.
I have downloaded and extracted those libraries but I have no idea how to add them to my existing project.
For those that are distributed as a simple JAR, do what Emil Adz indicates, and copy that JAR into your project's libs/ directory.
For those, like ActionBarSherlock, that are distribute as Android library projects, you will need to do a bit more work. In the case of Eclipse, you will need to import the library project into your workspace, then go into Project > Properties > Android for your application project and click the [Add] button to add the library project to the application project. For a command-line build, use android update lib-project to link the application and library project together.
You can read more about referencing an Android library project from Eclipse or the command line in the documentation.
You need to import those libraries as Android Project from existing source and mark them as "Is Library" by going into their properties.
Once you marked it as "Is Library" add it to your
project by going into Properties->Android->Library->Add (it will show the list of library you imported).
The Right Way:
What you need to do is to copy the external library (JAR file) to the /libs folder of your project.
That way those libraries will compile with your project and could be use on real device when you deploy your application.
Some times you will need to add a project to your workspace ( For example the Google Map library)
and then add the library reference using the properites -> Android window at the bottom.
You can get an idea of how it's done by reading the first 3 step of this Google Map API V2 guide I wrote. there I reference the android library project:
Google Map API V2 Guide
The Wrong Way:
any other way, like for example adding the files using the properties - > Java build path screen may result in a missing library when you run the project on a real device.
if they are jars the make a libs folder then paste the jar in it and then go to your project buildpath->configure build path->Add Jars-> ok and if it is a library project then go to your project Property->Android->Add(Your Lib Project)->Ok->Apply

Android Library Projects in Eclipse - Jar files doesn't show up in the r14 sdk tools

I have updated my SDK tools to r14. In this link it is told that the library projects will show up as jar files in the projects which uses the library project. But the jar files are not showing up and the <libraryproject>_src folder is still visible. While migrating to r14 from previous version is there any specific step/settings that I need to follow/change so that the library projects are included as jar files? Should I first export the library project as jar file and then include it? I would like to know if anyone has done this and how they have done it?
I got this to work.
I rebuilt the library project and a <libraryproject>.jar appeared in the bin folder. Then I removed the reference from the project which uses the <libraryproject> and added it in the same way as before.
Project properties -> Android -> in the Library section I added the reference to the <libraryproject> and it created a Library Projects in the current project containing the <libraryproject>.jar file.
Fortunately, there was no switch case statements involving the resouce IDs in my entire library projects. For those of you who is not able to get it to work right away, I would suggest them to go through the link I have posted in the Question.

Problems building Android project after Eclipse and SDK update

I have just updated Eclipse, the Android SDK, and everything else that appeared updatable, via Eclipse's Help->Check for Updates and Window->Android SDK Manager.
My project consists of a main project and 2 library projects. One library project is the normal Android License library project. The other library project contains Java files that reference Android resources that it itself doesn't contain, but that are present in the main project (for example R.id.myPic is used in the library project, but is actually contained in the main project). I had no problem building and running the main project before the update.
For some reason now I cannot build the main project. The main project folder has a "subfolder" called "Library Projects", which contains a jar file for the Android Licensing, but does not show a jar for the second library project. I also have a red exclamation mark on the main project folder.
For some reason I cannot rebuild the library file together with the main project. I've tried Cleaning all projects, building one then the other, building all, restarting Eclipse, but no luck.
If I go to the project properties, then Java Build Path, then Libraries, it appears that the jar file for the library project is missing, but I cannot independently create a jar file for this since it uses resources from the main project.
This is what my problems tab says:
The container 'Library Projects' references non existing library 'C:\AndroidDev\workspace\FlashcardsCommon\bin\flashcardscommon.jar'
Type: Build Path Problem
Any ideas?
Thanks a lot!
See this thread:
http://code.google.com/p/android/issues/detail?id=21031
It generally helps to go to Window -> Preferences -> General ->
Workspace and check "Refresh automatically". Then try clean
building your projects incrementally.
You may also have to remove the source inclusions that represented
your library dependencies manually. You will find that ADT 14 and
15 are very frustrating to work with when you have library projects.
It requires frequent manual cleans of libraries AND their dependent
projects to make changes to library projects effective.
Altogether, good effort by Google, but it's a bit buggy.
Another similar thread:
Cannot build library dependent project after update to ADT 14

Categories

Resources