I checked out many blogs for creating an ANT build script for an android project.
Many suggested creating it using the command line and quite few explained about creating it using eclipse, but the solutions don't work for me properly.
Can anyone please help me by specifying proper steps to implement ANT through eclipse for creating an Android Build script.
There's no Eclipse way of doing this, you have to use android update project/android create project.
If you elaborate which parts of the command line process failed for you we could probably help you with that.
I used this doc for doing just that. Always did it from command line. Specifically what you need is the "Update a Project" section in here: http://developer.android.com/guide/developing/projects/projects-cmdline.html
The link that #Eli Konki shared was very confusing to me. However I found this article that was pretty straight forward to follow. The only thing that didn't work for me was that I needed to add
<property file="build.properties" />
To my build.xml so that the properties I configured were acknowledged. Hopefully it will prove to be useful for you too.
Related
The problem
Under "External Libraries" in the project view of an Android Studio project I have these libraries "stax-stax-api:1.0.1#jar" and "xpp3:xpp3:1.1.3.3#jar". They're causing me problems such that I can't build the project. I can't seem to figure out how they got there or where they're being used.
The error message I get when I build right now is:
"Error:Error: xpp3 defines classes that conflict with classes now provided by Android. Solutions include finding newer versions or alternative libraries that don't have the same problem (for example, for httpclient use HttpUrlConnection or okhttp instead), or repackaging the library using something like jarjar. [DuplicatePlatformClasses]"
The error message is good except that it doesn't tell me who's using this lib in the first place.
The question
Is there an easy way to find out where they're being used in the project? Or even a way that it's easy but doesn't require looking at every file? It's a multi module project with lots of files. If I could delete them this would tell me but there's no delete option.
This could be something really simple that I'm overlooking. Any help appreciated. Happy to add more info as requested.
What I've tried
I've tried to "Analyze Dependencies" but it doesn't show me any references that I can see.
Update: I forgot to mention that I've also tried ./gradlew app:dependencies but it only tells me that my project depends on these libraries. I already know this. Is there a way to get some more specific information so I can remove the libraries?
Update 2: The accepted answer does work but I needed to redirect console output.
gradle app:dependencies
It will show you the dependencies tree of your project
At this link it is explained quite well about the command and how to use it.
Use this to redirect console output if it's clipped:
./gradlew app:dependencies > dependencies.txt
Project can be explored in "Project-tool-window" to have a look at the used external libraries which are not visible in "Android tool Window".
https://www.jetbrains.com/help/idea/project-tool-window.html
That way I solve my problem. Hope it help.
Hello I am trying to learn a little bit of facebook-sdk for android but no luck.
I will post some screenshots so you easy understand what is my problem.
1st step I am adding the SDk to my project
2nd step I import Classes but i get an error
And when I am going back to android tab I see this
Really need help. I tried Many times to follow the steps from FB Guide in case I forgot something but didnt helped... Thank you in Advanced.(I am new to this hope you will understand)
Your "Jar mismatch" problem comes into picture because of the Facebook SDK itself has android support v4 jar as well as your project also same jar file.
To solve this problem..
Go to your project's properties -> Java Build Path -> Order and Export :
Now remove the Tick-Mark from Android Private Libraries.
make sure that you had already used facebook SDK's private library (tick-marked)
And then after clean your work space..
It will always help me..
Hope this will help you to solve your problem.
I'm trying to get an (inherited) Android project to build. I'm using Ant & command line tools (and IDEA).
In styles.xml, there are references that cannot be resolved such as:
<style name="AppBaseTheme" parent="#style/Theme.AppCompat.Light">
This is the original error I ran into:
[...]/res/values/styles.xml:8: error: Error retrieving parent for item:
No resource found that matches the given name '#style/Theme.AppCompat.Light'.
I then noticed that project.properties has this appcompat reference which is broken on my (OS X) machine:
target=android-18
android.library.reference.1=../../../../adt-bundle-linux-x86_64/sdk/extras/android/support/v7/appcompat
I tried to fix that by making the reference relative to ${sdk.dir}:
android.library.reference.1=${sdk.dir}/extras/android/support/v7/appcompat
So now that path should be correct. But now when I run ant debug:
BUILD FAILED
/opt/android-sdk-macosx/tools/ant/build.xml:573:
/opt/android-sdk-macosx/extras/android/support/v7/appcompat resolve to a
path with no project.properties file for project /Users/joka/devel/project/
So, any ideas? What's the simplest way to get this project built?
(Please note that Ecplise-specific advice won't be useful to me.)
Edit: The Android SDK installation looks like this:
As Jay indicated, only relative paths will work on Unix/Mac.
For the Ant build to work, I also needed to generate build.xml for the appcompat project, using the command android update project -p <dir>, in my case:
/opt/android-sdk-macosx/tools/android update project
-p /opt/android-sdk-macosx-r22.0.1/extras/android/support/v7/appcompat
The exact config for me was:
android.library.reference.1=../../../../../../../opt/android-sdk-macosx/extras/android/support/v7/appcompat
(This also works in local.properties, which I think is a better place since the same path won't work for all developers.)
I merely promoted my comment from 6 months ago into an answer as someone suggested.
By the way, now that I actually know something about Android development, I'd urge anyone who has the chance to ditch Ant and look into the new Gradle-based build system which is totally sweet in comprarison. It is CI-friendly and makes it easy to automate useful things (like using different package name and app icon for different build types). Stack Overflow will help when you run into problems.
Using the support libraries with Gradle, you'd skip all the above hassle and simply do:
dependencies {
compile "com.android.support:appcompat-v7:18.0.+"
}
I ran into the same problem, so I tried using a relative path and that fixed the problem for me. It looks like only relative paths work with android.library.reference. I did a quick search to verify this, and came across this stackoverflow link which indicates that absolute paths will work with android.library.reference on Windows, but not on Unix or Mac.
Peace.
Your path seems to be wrong (you are missing the 'compatibility' part).
The v7-appcompat library is at
{sdkpath}/extras/android/compatibility/v7/appcompat
for me (SDK Tools version 22.0.5 on Max OS X 10.7.5)
I followed the direction of this page
http://sourceforge.net/p/jmrtd/code/1490/tree/trunk/androidclient/
and when I executed the last command ant -f build_jar_deps.xml
I faced the following error,
[exec] svn: E170000: URL 'https://scuba.svn.sourceforge.net/svnroot/scuba/s
cuba_sc_indep' doesn't exist
I visited the above link and I see page not found error
What is the problem ?
I know I'm a bit late with reply, but if anybody is still interested in JMRTD Android app, I have developed a new project from scratch:
https://github.com/tananaev/passport-reader
It's a standard Gradle project, so it's very easy to build from command line or Android Studio. All third party libraries, including JMRTD, are downloaded automatically from Maven.
You have to download the jarjar1.3.jar and change the path.
Hey I know this was asked before, but none of the solutions seem to help.
This is NOT a duplicate
I have used the Facebook SDK before on an earlier project,
now I started a new one and I get this weird error.
I have set a reference to the library
I have set the Facebook SDK project as a library
I have tried deleting it and re-adding it according to the official documentation, and basically tried everything in this question.
Though I still get this error and can't find out why.
Worth to mention, when I tried to use the facebook class, it gave me an error with an option of "fix project", which I did and still didn't work, might be related?
This is common error. Just remove FacebookSDK project from Properties->Java Build Path->Projects . This project should be referenced from Properties->Android
For more information, see this answer: Could not find Library.apk!
Well, after alot of searches the only thing that worked for me is just creating a new project and copying all the files to it.
I tried avoiding it but that seems like the only thing that works =/
As there is no answer on this topic whatsoever, so if someone could find out a better solution - it will be very helpfull to the community
Hmm.. I just want to ask whether did you import the Facebook SDK into Eclipse itself? Because I had did a project using Facebook and the thing is that besides referencing, the guide I followed actually instructed that the SDK must be imported into the Eclipse.
You might probably want to have a look at this. Else, the other way is just like what you did, copying all the files.
Try deleting the Facebook application for Android (if you have one installed on your phone). This worked for me.
i dont know how this is happened but it works :
first : i have added all facebook3.0 related sample + facebookSDk projects in one workspace .
second : i have run a sample project . in which i found a .jar file :
androiddependencies->facebooksdk.jar (note this exact path )
third :
1.) i created my project .
2.) inside this i have removed errors by :- FixProjectSetup (atLast position )
3.) i have added facebooksdk.jar by right_clicking at project->properties->android->by checking android 4.2 + reference the Facebooksdk -> done .
now i am able to create and run programs easily .