In my current gradle based project, I'm using a library which depends on already built .so libraries in the armeabi folder in libs.
How can I add those .so files to my project?
Thanks
I created a new JAR with the .so files in a lib folder in it. Simpliest way to fix that..
Related
I want to build a fat jar include android library(android.content.Context, android.graphics.Bitmap, android.graphics.Typeface......) and some .jar dependency. Can I do it on Android Studio or IntelJ Idea??
I just want to make and export a .jar file that can include android lib and other jar. Example : "butterknife-7.0.0.jar" at mvnrepository.com/artifact/com.jakewharton/butterknife/7.0.0
butterknife-7.0.0
I have a project that is an Android Library. It uses two external jars (universal image loader and ksoap).
I need to create a jar from this project to distribute it, but when I do this and use this project, I always get a java.lang.NoClassDefFoundError, saying that the ksoap classes are not found.
When I open the jar file, I see the both jars included, but it seems that the final project does not see them.
How can I do this?
Thanks!
Create a regular Java library and do the following steps:
Add "android.jar" as a library in your project
How to locate it?
android.jar is located in Android SDK
<Android SDK path> / platforms / android-XX / android.jar (XX = API number)
It's simple to do, and it not requires to include "android.jar" in your JAR file, because "android.jar" is already included by default in Eclipse ADT / Android Studio.
NOTE:
For Android Studio, add the library uniquely in this way:
Add this on your build.gradle.
dependencies {
compile files('libs/your-jar-library.jar')
}
For include these two external jars, you need to do following steps:
Unzip both JARS
Unzip your JAR file
Copy the files of the unzipped libraries to your unzipped JAR (Only package folders)
Zip your JAR file with the external libraries included, you don't need to put a JAR inside JAR.
I'm very confused about adding external .jar files to my project.
I downloaded https://github.com/chrisbanes/Android-PullToRefresh library project.
After importing it to Eclipse, I cleaned & built it.
After that, in the bin/ folder of the library project, there is a .jar file.
Next I copied this .jar file to the /libs directory of my project from which I want to reference it.
As far as I understood, from now on there is no need to keep the library project in my workspace, because i added the .jar file to my project.
Picture of the projects tree:
https://www.dropbox.com/s/7w4tzis8v1vv4aj/jarProblem.png
When I'm running the referencing project with the library project open : no issues.
As soon as i close the library project: NullPointerException <- seems not to find the library.
I already tried every possible combination of build path configuration but I can't get my main project to be built with the pulltorefresh project closed.
I thought it was the sense of a .jar file to distribute a library without having to attach the source files.
It should work the same as the android-support-v4.jar ... for which i don't have the source code either.
What am I missing here ? Thank you.
There's a difference between a jar file and a library project.
Jar files can contain only code, no android resources. These just need to be placed in your libs folder and linked in.
Library projects can contain Android resources. They need to be compiled as Android libraries in Eclipse, and kept around as their own project. You then tell your main project that it references this one. Its necessary to keep the library project around because it needs to build the /gen files from it for your resources to be right. It also needs to be able to grab the contents of its assets folder.
Given that this library has a res folder, its an Android library project and can not be used as a simple jar.
I want to use a svg-android library to work with *.svg files in Android. For the same, I've installed the apache ant, created a folder in workspace called: SVGAndroid and then added
android.library.reference.1=C:\Android\workspace\SVGAndroid
to project.properties file.
There were no documentation for functions in ReadMe, so I'm wondering if the installation correct or not, how to reinstall an external lib in the second case and where are the examples of using svg-android?
For your including of the project, just include the project into your workspace and in your respective application under the properties of that project just add a dependency on a library that references svgandroid. Make SURE to include the files and ensure that the compile class files are present in the final output of the apk. This typically means that you add the project to your build path/order.
Another approach is to just take the entire project and compile it into a jar file and then include that jar in your libs folder and add that dependency on the jar file of that respective project to your core application.
Useful links
How can I use external JARs in an Android project?
I would rather suggest to not add the path to the project manually, but from Project Properties -> Android and you will have a list with all the library projects in the workspace from which you can choose the desired project.
Also I suggest adding in project.properties the following line:
manifestmerger.enabled=true
in order to have all the AndroidManifest.xml files of the referenced library projects merged into the main project's manifest.
If you want to include a library file in to your project follow the below steps;
Download a jar file and save it in any folder.
open your project.
Right click--> Build path--> Add External Archives---> Add your external jar file to your project
I have a 2 prebuilt libFOO.so libraries for android. I have copied them on:
Projectfolder/lib/armeabi/libFOO.so
Projectfolder/lib/armeabi/libFOO2.so
Projectfolder/lib/armeabi-v7a/libFOO.so
Projectfolder/lib/armeabi-v7a/libFOO2.so
The problem is that when I build the .apk I don't even have the "lib" folder! How can I make eclipse include these libraries on the .apk?
Try to rename the lib folder to libs. That works for our project. Nevertheless this results in a lib folder containing the libraries in your .apk package.
I think you have to put external library in your manifest.xml under application tag.
ex : <uses-library android:name="com.your.external.package" />