I am baffled by eclipse. I had a working android application which i created inside eclipse. I now have come back to the application after a week and it is saying in the last java files there are hundreds of issue. I am sure there is no programming error inside the files as they worked one week ago. I think it may be a build path issue...i was wondering has anybody else come across this issue and why does it occur??
Several of my other projects also say the last file has errors which i know they dont.
Why is eclipse doing this to me?
Where should the build path point?
Under Java build path-> libraries..it says...unable to get system library for project?
Clean build in eclipse. That should generate the R.java and that should resolves your compilation issues.
This problem happens many times to me, here is the way I use to fix it:
Export the project to an external folder
Delete project from workspace (check "delete files on disk")
Import the project into the workspace again (check "copy project files to workspace")
Did you change the SDK location? That may cause this issue.
If possible please post exact error message.
Related
Before coming to the problem let me explain what I did that has landed me in the problem.
I created an account on github and made a repository named Android.
Then I installed github client in my windows 7.
Then I opened this client, provided my authentication and cloned the repository to a local directory C:\Users\Aniket\Documents\GitHub\Android(This folder has the .git folder in it).
Then I went to my Eclipse ADT and installed EGit plugin as described here. Also I
Then in Eclipse I right click on my project TicTacToe go to Team->Share Project and provide my repository path i.e C:\Users\Aniket\Documents\GitHub\Android.
My Project was added to the local repository and in my github client it shows me all option to commit file in the actual repository on the github site.
But my project is suddenly showing error with a red '!' sign on it.
Description --> Archive for required library: 'C:/Users/Aniket/AndroidWorkspace/TicTacToe
/libs/android-support-v4.jar' in project 'TicTacToe' cannot be read or is not a valid ZIP file
Resource --> TicTacToe
Path Location --> Build path
Type --> Build Path Problem
Note : the Error was a single line displayed in error console on Eclipse. I just split it up for readability.
Even after detaching repository it shows that error.
Has anyone encountered this scenario before. What is the solution or workaround? I googled and first few links suggest it is an Eclipse bug. Please suggest what can be done to bring my project back to executable state?
It is an Eclipse bug. I have faced the similar problem several times. closing and reopening the project works sometime. if it doesn't work try restarting Eclipse.
I've seen the same issue. I removed that jar file, and then rightclick on the project, select maven, and do "update project...". The jar was downloaded again, and the problem was gone.
There is other case to display error Archive for required library
Right click on project and open --> project project properties --> java build path --> Android private libs
if there are two jar files with same name then remove one from libs.
jar file may the hidden some times then
open you libs folder in window and check if any hidden files are exist
Organize --> folders and search options --> view --> check show hidden files
and Delete the hidden jar file , The same cass delete if hidden java fies exist in src and packages if any
Looks like everyone has different story to tell! For me, I had to delete the error from eclipse Markers tab, and then cleaned the project again. Before that, I closed and re-opened the project/eclipse several times as suggested by #rachit, which did not work for me.
In my case, i'd downloaded project from internet, after unzipping project some files had been blocked, just unblock files and try again, then problem was solved.
In my case I tried all the tips suggested but the error remained. I solved changing version with a more recent one and writing that in the pom.xml. After this everything is now ok.
In my case restarting Eclipse did not solve the problem. I restarted the computer and did a Project -> Clean in eclipse
A solution that worked for me:
go to *.classpath and delete the line :
<classpathentry kind="lib" path="the_problematic_class.java"/>
Could be due to corrupted jar files as well. Better to check that first as that was the reason in my case:
jar tf myjar.jar
should list the content inside.
i was facing same problem in Eclipse Mars. I downloaded the jars from [https://oss.jfrog.org/webapp/#/artifacts/browse/tree/General/repo/org/ethereum/ethereumj-core/1.0.0-SNAPSHOT][1]
and replaced it in the directory.
I got error while adding ethereum.jar using pom.xml at C:\Users{machineName}.m2\repository\org\ethereum\ethereumj-core\1.0.0-SNAPSHOT\ethereum-core-1.0.0-SNAPSHOT.jar , i added the downloaded jar(ethereum-core-1.0.0-SNAPSHOT.jar) here and the problem was solved.
I will say that it can be that some answers work for some cases, but for me it was necessary to go an extra mile. So I will try to make a summary of what can be done:
Verify that the jars are intact:
jar tf myjar.jar
Restart eclipse and update projects setting over right click on project -> Maven -> Update project
The option which has work for me was to navigate in the workspace folder and then delete the files:
.metadata/.plugins/org.eclipse.jdt.core/invalidArchivesCache
.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache
After that restart eclipse and rebuild project.
I found no duplicates anywhere and tried restarting eclipse, rebuild project. I was getting error for only one libary. So I just tried to rename the jar file from ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar to ksoap2-2.5.8.jar
So if none of the problems solves from above you can also try this one
In my case, the java installation was not proper. So, I uninstalled Java and reinstalled a new version. Now, it works.
For us, the problem seemed to be the size of the .jar file. I would recommend doing the following test to see whether this is the case or at least rule it out. First have a look at other jars in your Eclipse project and compare them to the problemetic jar. Is it a lot bigger than the others? If so, try the following workaround. Else, this answer probably won't help you. Before starting, configure Windows to treat .jar files as .zip files with the following command line command:
assoc .jar=CompressedFolder (see https://superuser.com/questions/121540/can-you-configure-windows-to-open-jar-files-like-zip-files-without-a-3rd-party-t)
Optional: A simple Test
Before trying the workaround, here is a test to see if it is indeed the jar file size that's tripping you up.
Create a large .jar full of random .class files that aren't in your problematic jar. You can do this by making a folder full of files, zipping it, and renaming the .zip extension to a .jar. Windows might warn you about changing the extension. Ignore this. Make sure you have enough files in the folder so that it's a bit larger than the problematic jar.
Try to import this artificially created jar. If it fails with the same error, then size is probably the issue.
The Workaround
If it is indeed size that's the problem, which you might have identified by doing the optional simple test above, you can try the following workaround.
Decompress your .jar file. You should be able to do this easily in Windows
Split the folder you get from step 1 into smaller sub-folders. It could be just two folders, or more, depending on how big the original is. You want the folders to be smaller than some of your existing "good" jars so that size won't be an issue. Make sure to keep the package structure intact when you're doing this.
Zip up all the folders you created in step 2, and rename the .zip to .jar.
Import all of the .jars from step 3 individually.
The steps might be a bit unclear, so here's an example. Imagine your jar file was called mylib.jar. You unzip this to a folder called mylib. Inside, let's say there are three sub-folders called package1, package2 and package3. Create 3 folders called mylib1, mylib2 and mylib3, and put in package1, package2 and package3 respectively. Then zip these up and rename extension to .jar. You'll then be importing mylib1.jar, mylib2.jar and mylib3.jar.
For Java web application, web.xml added as jar in the project. In project explorer, try to find web.xml as in jar icon and remove from the project. Error will go away!!
I was stacked on this problem for days despite searching for a solution on the net. I first moved my project to Netbeans and all worked fine. I then returned to eclipse->properties->java compile-> Building and changed "Incompartible build path" option from error to warning and then did maven update and it worked.
I realize this is an old question, but I have yet another solution if none of these work for other people coming across this thread.
I had this same problem, and spent alot of time trying to figure it out, only to find that my Eclipse classpath/buildpath has a .json file in it, it doesn't like that, so it wouldn't compile.
So, check to make sure no text files or json files, etc are in your build path.
I had accidentally put the web.xml into the build path :x
I'm a newbie with both android and eclipse, so if you can help me, please don't assume that I know very much.
I have downloaded kankan.wheel and I'm trying to run the demos. I built the demo project in eclipse, using Android project from existing code. The project compiles without error, but crashes with a NoClassdefFoundError exception when I try to run it. The main menu comes up, but when I press a button to run a demo, the app crashes. I posted a screenshot of the the error message in context at https://dl.dropboxusercontent.com/u/24746182/except.png
I have added the wheel.jar file to the assets folder, and placed it on the build path. I've also checked wheel.jar in Order and Export. (This makes no sense to me, but I see this suggested in answer to similar questions.)
What have I done wrong, or failed to do?
Is there some reason why eclipse wouldn't just build a runnable project?
This is an update after trying the suggestion people have made. I still can't get it to work, so I'm afraid that I'm overlooking something so obvious that no one's thinking to tell me. Here is what I did.
I downloaded and unrarer a rar file with the wheel library and a wheel-demo project.
I created the wheel-demo project in eclipse, using new android project from existing cde.
I added a libs folder to my project, and copied wheel.jar into it.
I right-clicked on the wheel-demo project in Project Explorer, and chose java build path.
I clicked on "Add external jar" and navigated to wheel.jar.
I went to "Order and Export" and checked wheel.jar.
I had several errors. In the .java file for each activity (except the main activity), I got an error on the line
import kankan.wheel.R;
I commented this line out.
Also, since wheel.jar apparently doesn't specify a minimum API level, I got a error, but I just put a minimum sdk level of 8 in the manifest. I was then able to build the project without error. Still, the main screen comes up, but the app crashes as before when I press a button for any activity.
Can you see anything I've left out or done wrong?
Try to place your jar file to the 'libs' folder at the project root
I was never able to get it to work with the rar file. Here is what worked;
svn checkout http://android-wheel.googlecode.com/svn/trunk/ android-wheel-read-only
import wheel project into eclipse
fix the android:targetSdkVersion version in the manifest to get rid of the "unable to resolve target android-7" error
build the wheel project as a library
import wheel-demo project into eclipse
fix the skdVersion in the manifest
change "import android.wheel.R" to "import android.wheel.demo.R" in all the source files where it occurs.
build the wheel-demo project
I may have left out a minor detail or two.
I recently downloaded the Android Support Package and have been using it trying to get my application, running at SDK 10, to use a GridLayout.
Anyway, I cleaned my project a few times working on this error in my XML files, and then when I went back to my classes in /src, every single reference to R.* was an error.
This has happened to me before, but it usually fixes itself, and it has not yet. Does anyone know what to do?
The R.java file is no longer in my /gen folder.
It sometimes happens when you import another project First i suggest you to build it, it will create automatically .
If it's not working then try to create new project from existing source and specify the downloaded project . It worked for me
Hope this works for you let me know..
Sometimes if there is an error in your XML files R.java won't build. Go through your XML files to make sure that everything is in order (typo, forgetting to close a bracket, etc). When you fix that it should build itself again.
You can also try Adnroid Tools>Fix Project. That may help you to create gen/R.java file
Follow following steps :
In Eclipse,
=> Right Click on Project > Android Tools > Fix Project
By this way, you can fix many common problems which can help generate R.java in gen/R.java file.
There can be several reasons why this occurs. The following I have found happen to me and I have included the steps I took to resolve them.
First step is to try and clean the project (from the Project menu option I believe)
Check there are no errors with your XML files. Sometimes this is obvious from the red 'x' that appears next to an XML filename in the Project exlporer window and sometimes it is not. If it is not obvious check the 'Errors' window (whic is founf in the 'Windows' Menu option
Failing that I have found that by disabling the automatic build option, adding some arbitrary comment to an arbitrary source file, saving the source file, clean the project, remove the comment and then re-selcting automatic build can work too.
Apologies for the approximate locations for some of the Eclipse functions but I am not currently in front of Eclipse to check.
This happens when you have an error in the res folder.
Fix the error first, then do :
Project --> Clean --> Ok
Et voila !
I am using Eclipse Classic 3.7.2 working only on Android. I use Ubuntu as my OS. When I run any basic Android application on Eclipse say "Hello World", it results an error called Your Project contains error(s), please fix them before running your application.
Now I have googled and checked here and may others but I did not get the solution.
I also tried Project > clean... but it isn't working.
Windows->Show Views->Problems shows 2 errors:
Error generating final archive: java.io.FileNotFoundException:/home/android/Desktop/helloworld/bin/resources.ap_does not exist.
Unable to parse aapt...
It may be be because of Eclipse's debug certificate expiration.
Please look at to my this answer.
Close and restart Eclipse. It works everytime !
Its bug with deleting android projects I think.
I have faced exactly same type of issue. Just update your eclipse ADT plugin to latest version.
After update clean build the project.
Go to your .android folder and delete your debug certificate. In my computer it is in this path
E:\Users\(ur profyle)\.android
Inside that there is a file name 'debug.keystore'. Delete that,clean and try to build the project again. Sometimes this error is caused when the certificate expires.
You need to update your Eclipse to the latest available version(Indigo) and then need to update the ADT(level 16 I think), as the latest ADT updates works on Indigo only. After the updates close and reopen the Eclipse, it should work now.
Go to Project Properties -> Java Build Path
Select Libraries and remove Android Dependencies
After this my problem solved.
The error was because of updating
Set your Android sdk path once again and restart Eclipse. It fixes the issue (window-preferences-android-sdklocation).
Or, just update your Android tools and restart Eclipse works.
Check your libs folder ..
some libraries cause this ,
it happened to me once and i was use Apache POI .. i tried to delete the jars from libs folder and it's worked ..
I had this problem in Eclipse after executing Project => Clean... That option deletes all the compiled stuff from your project and, therefore, the java classes start looking like if they all have errros.
To fix that problem I had to:
1. open my java clases and XML layout files(for android dev)
2. do a small change, something like a adding a space
3. Hitting Crt+S to ask eclipse to save and compile the class once again.
This solution may or may not work for you. I recommend looking at your specific problems using the Problems tab of Eclipse (Found at Windows=>Show View=>Problems) since it tells you about the exact errors and other very useful information.
If you're using android support library make sure you have not added jar files ( android-support-v4.jar and android-support-v7-appcompat.jar ) in your libs folder.
you only need to add android-support-v7-appcompat as library on your project.
It worked for me the time I had the same issue
My project had no errors in it but I noticed another open (unrelated) project which did have errors. I closed that project and my other project worked fine again.
Now the "unrelated" project used to be related but I'd removed the dependency ages ago. Closing it solved my problem so I have to assume there is some Eclipse bug in there somewhere which is still linking to it in some way. I'd say if I created a new project and copied everything in it might have achieved the same result.
As a test for yourself.. maybe close all other projects except the one you are working on.
other answers relating to this did not help me out. Hence, I am posting a new question. I am trying to test a sample app of android that comes with their SDK. I get the error "R cannot be resolved to a variable". Looks like my R.java is not being generated. I don't know if I checked in the right place. I checked in the 'gen' folder of where I had downloaded my SDK and could not find the R.java file in the app which I am trying to test.
Could you please provide me with some ideas?
Thank you so much.
It happens when resources are not compiled. If you don't use automatic builds then just build your project. Otherwise it may happen because of some errors in resources.
I had the same problem(there was nothing under gen folder) and tried other solutions such as "cleaning project, checking if not android.R package is imported instead of mypackage.R, moving gen folder over src in java build path => order export tab and checking permissions of SDK executables" but none of them solved it.
Finally when I was checking one of the layout xml files in the res=>layout whether it has a problem or not Eclipse warned me with "The project target (Android 2.3.3) was not properly loaded" text. So I wanted to double check Android SDK Manager from Eclipse and found out that related SDK had an update. I did not see it before because it has a confusing structure with new or installed check boxes in my opinion.
When the 2.3.3 SDK updated all the problems gone...
Just clean the project and build again.
This is the most common problem I've found while developing for android.
Also try this Link for a detailed description about this issue.
Try to remove the read only in the properties of the sample sdk folder. That fix my problem i guest. Then remove the project in the eclipse. Restart eclipse. Then import it again.