android eclipse problem with R.java - android

Suddenly my Android app is compiling with loads of errors in Eclipse. When I use Project-Clean the console shows it processing until 'Writing symbols for class R' then it pauses for around a minute and finishes with 'Nothing to pre compile' This behaviour follows adding several new strings to my strings.xml and replacing strings in the code with :-
getResources().getString(R.string.name of string);
Any ideas? Would it be safe to delete the R.java file to force it to rebuild perhaps?

I faced a similar issue. I had missed putting a plus sign in android:id="#+id/GoTo". Everything was fine after I put back the missing plus sign, cleaned and rebuilt the project.

When you use eclipse is very important after you change something in strings.xml to save that file and also rebuild !, if you have checked the option for build automatically than is enough just to CTRL+S if not you have to rebuild manually , cause your R.strings values are not jet updated

Check if you import the right R file. It should be your projects file, not android.R.

Maybe your listing is not exact code but if it is, then resources names can't contain spaces. (I am talking about R.string.name of string)

This is my currently todo list when I have that kind of problem:
Refresh main project
Clean
Build All
if it wont work again. Close Eclipse -> repeat from 1.

Related

Eclipse Crash and Not Regenerate R.java

I know this question has been asked & answered before. But, none of those answers work for me. Eclipse crashed in the middle of a build and keeps erasing the R.java file. I have tried to clean and rebuild. Does not help. I was using SDK build tools 19.0 upgraded to 20.0. Does not help. I didn't touch anything in the XML files and I do not see any errors in the XML files.
Try another IDE e.g Idea and check if this is due to your Eclipse malfunction not your SDK that you have updated recently
I my case there was something wrong with my XML usually my layout files, when you have a problem in your XML files the clean option does not work properly, check your XML files ( layout and manifest ) and after that clean your project.
Hope this help you
I did get my R.java back. There was a jpeg for another project stuck in a drawable directory. Don't know how it got there. and, still lots of unexplained errors though.
All my other errors were from switch statements using R.something_menu.icon for cases handling user responses. I got a message that as of ADT 14, switch statements can no longer be used. I had to migrate to if...else It works. Don't know why. But, it solved the problem & saved my code.

"auth_client_using_bad_version_title" is translated here but not found in default locale

I'm forced to use Google Play service (I need Location Service). So, after I wrote all code and tested application on device, i tried to export signed application. And all I got is Lint errors like (I even changed MissingTranslation erros in Lint from fatal to warning)
"auth_client_using_bad_version_title"
is translated here but not found in default locale
And this error repeats in all "values-" folders
I know that I can disable lint checking before exporting application. But is there any way to do it right without any hacks, errors and curses on Google developers?
So I think this case in one of two things:
I'm idiot
or
Google publish crap that doesn't allow to use another Google crap etc.
On the top of your strings file, change the <resources> to this:
<resources tools:ignore="ExtraTranslation" xmlns:tools="http://schemas.android.com/tools">
Looks like some caching issue of Android Studio. For me File -> Invalidate caches/restarts fixed the issue.
Goto
Window->preferences->Android->Lint Error Checking -->Correctness: Messages--> Extra Translations ------------>make it Fatal to Warning
I got the temporary solution.
copy auth_strings.xml from values-en-rIN (locale values for INDIA you can use any locale) and paste it in default values folder.
In Android Studio, Go to File> Invalidate Caches / Restart..., and click on Invalidate and Restart.
So the 'default locale' is the one with just 'values' with no modifiers like -af, -am, -en etc. The problem happens because there is no auth_strings.xml file in that folder so there is no fallback option and hence the error.
To fix it just copy the auth_strings.xml file from another of the values folders to be your default language. I'd suggest a common language like English or Spanish. I used English. This fixes the error for me. I guess they just forgot to put in a default language.
i had the same problem.. and doing a "clean project" fixed the issue
All I did was to copy the 'auth_strings.xml' file from the English folder to the values folder as the default version was missing.
just change extra translation from fatal to warning.It worked for me.
Window--->Preferences--->Lint Error checking--->Extra Translation(in ID column)
In case, if you want to just pass the release process;
In Android Studio, through Gradle, you can disable "Lint Error Checking" during the release process.
Open your build.gradle(app) file and add the following code snippet inside the android tag.
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
Make sure you have the string in the default locale.
If you have it, try to delete the error line in the strings.xml and undo the deletion.
If the string.xml is from a lib, delete the lib, sync, undo the deletion and sync again.
If the above step did not work, clean the project.
I had the same problem that I couldn't solve. I just restart Android Studio, and had no error anymore.
A very quick solution mentioned here for this-
Simply remove the offending line and re-add it.
Ensure you have the string in the default area. In the event that you have it, attempt to erase the mistake line in the strings.xml and fix the cancellation. On the off chance that the string.xml and fix the cancellation. On the off chance that the string.xml is from a lib, erase the lib, match up, fix the erase and adjust once more.
On the off chance that the above advance didn’t work, clean the venture.

unable to instantiate application - ClassNotFoundException

EDIT: This problem has not already been resolved in the other suggested SO question
I had a fully working app on the market for over a year, with very few crash reports. Then recently I changed my app into a library, so that it could be included within multiple different "wrapper" projects. This was so that I could easily make different version - free, paid, non-google markets, with/without in-app purchasing etc etc.
The new "library+wrapper" app appeared to work fine. I could run it multiple times, without error. But then a day later (when presumably the OS had closed some or all of the app's activities) I tried to run it and it reported
Unable to instantiate application com.mycompany.mygamelibrary.MyGameApplicationClass: java.lang.ClassNotFoundException: com.mycompany.mygamelibrary.MyGameApplicationClass
The class it failed to find is the first class that runs when the program starts up, MyGameApplicationClass - which extends Application. This class is part of the library.
I suspect something goofy in one of the two manifest files.
The manifest of the wrapper project contains the lines...
<application android:icon="#drawable/mygame_icon"
android:screenOrientation="portrait" android:label="My Game Name"
android:name="com.mycompany.mygamelibrary.MyGameApplicationClass">
Any ideas what could have gone wrong?
EDIT: The library was referenced "the correct way" as defined by yorkw's answer to this SO question.
EDIT: I can not repeat the crash at the moment :-( I don't know what it is the OS does when the app is not used for a day or two.
There are two possibilities. Either you, like me, have a spelling error in your manifest file. Have a co-worker or friend read it to make sure the name is correct. Or you have not referenced the project correctly.
The official document describes how to properly link projects in its documentation.
Why it would first seem to work and later stop working is a bit of a mystery. However, I guess that the VM might still have had the necessary references ready to resolve the classes in the library just fine. A restart of the VM removed all those references and trying to resolve them was unsuccessful.
Update: Regarding the edits in the OP: As you confirm that you have correctly referenced the other project, you can check if the project is included in APK, just to be sure. You can rename and open an APK as any other archive (.rar works fine for me). Sometimes, it happened to me, the project is not correctly included in the APK. A cleaning of your workspace usually remedies the problem and so could a restart of your IDE depending on what you are using. To manually conduct a clean in Eclipse for example, use Project->Clean... or try Android Tools->Fix Project Properties by right-clicking on your project.
As you seem to also have fixed the problem by restarting your device, it could be that the libraries were linked incorrectly. A problem that I have never seen myself but as a very common quote says: "Have you tried turning it off and on again?".
For Android Studio:
Build --> Clean Project
Fixed issue.
Have you tried to make a new subclass of MyGameApplicationClass in your 'main' project and set it in the manifest as Application class?
I had a slew of bugs with Android Studio 3.0 Canary 4 and the way I fixed them was by editing the AndroidManifest.xml by adding in some jibberish to the application name. Then, I clicked build. Obviously, a whole mess of new error messages appeared. I changed the name back to what it should be, built the app, and it just ran.
Sometimes, I just don't know...
EDIT: Just ran into this issue on Android Studio 3.0 Canary 4 on my laptop when switching over. I again went through the same process of changing AndroidManifest.xml file to contain a typo, building, and changing back. That didn't work.
I then noticed that instant run was still enabled. Going into settings (by clicking command + , (comma key)) and typing "instant run", I was able to disable instant run, built the app, and the error of class not found went away.
Summary of Steps to Fix [FOR ME]
Invalidate cache / restart
Clean the project
Manually delete the build folder (need to be in project view for this one)
Make an intentionally errant edit to your AndroidManifest.xml file, build the app, observe the errors, remove the errant edit and build again
Disable instant run
Again, I don't mean to insinuate that this will fix everyone's error, but I have now used some combination of these steps on two different machines (MacOS Sierra) and it has been resolved for me. Hope it helps.
In my case, application id and package were mismatched. This should be same as presented in following images...
AndroidManifest.xml
app/build.gradle
In this case you can see, applicationId and package both are same that is com.mycompany.mygamelibrary
May be its a Build Path Configuration problem.I did the following to solve the issue.
1.Right click on your project and go to Java Build Path.
2.Click on Order and Export tab.
3.Check Android Private Libraries and other 3rd part libraries if you have added.
4.Press ok and clean the project.
I hope it will solve the issue.
Once I had the same error message, but maybe the cause isn't the same.
I did a code and worked for a while, then I wanted to improve it and got the same error and I couldn't run it.
I could fix the problem with
the correct Build Path order (as I can see you've already did this)
I check on the Order and Export tab the android-suppor-v4.jar
and the key was the Android SDK Managert->Upgrade everything and (next) Eclipse->Help->Check for updates.
After I upgraded to the latest android plugin and SDK my app compiled and ran again.
I hope this will help you!
I'm not very sure about this but it might be that your system's debug.keystore license validity has expired as it is valid for only 365 days. You just need to delete the debug.keystore from your computer. The debug.keystore will be generated automatically by Eclipse when you compile your Android App.
Same message seen ... this time it turned out to be different output folders for MyApp/gen and MyApp/src in the Build Path (caused by Maven integration).
Unchecking "Allow output folders for source folders" solved the problem.
I had this issue in an Android application that needed an Application class which was created in wrong path inside the Android Studio project. When I moved the class file to the correct package, it was fixed.
This all Process work for me to solve application class Exception.
Step 1: Open Run(window+R) Search -> Prefetch Remove all file (Some file not Delete)
Step 2: Open Run(window+R) Search -> %temp% Remove all file (Some File not Delete)
Step 3: Open Android Studio -> Build -> Clean Project
OR
Select File > Invalidate Caches / Restart > Invalidate and Restart from Android Studio toolbar.
OR
Close and reopen Android project.
OR
Restart System
I ran into this issue several times and both times it seemed to be caused by some instant run feature.
In my case, deleting the application from the device and then installing it from Android Studio again resolved the issue.
I ran into this problem today. The project runs well for over a year but today it reports this issue, and cannot debug on my testing device.
I fixed it by updating to latest gradle version. Hope this can solve your problem.

Android studio suddenly cannot resolve symbol R

I was having a project open in Android studio. It was generated by the wizard and working fine.
I did some small changes to activity_main.xml and when I changed back to MainActivity.java i get the error in several places that it cannot resolve R. I might have done something to cause this. But I´m not sure what since it appered when I edited the xml.
Does anyone know what might be the solution to this?
I can find the R.java in r/release/packege/com/ and it looks fine.
Most of the time it is due to a bad XML file. XML files can be layout files, value files, or the Manifest file. Please check your xml files and try to rebuild the project. Sometimes cleaning the project and rebuilding it also works.
In addition, make sure you do not have a drawable with an invalid name. I had a drawable with a numeric filename and that didn't sit well with Android so it failed to compile R.java.
Downgrade Your Gradle Plugin Version
No amount of cleaning, rebuilding and restarting would do the trick for me.
The only thing that did the trick was downgrade our Gradle version from 3.4.0-alpha02 to 3.2.1.
So, instead of:
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0-alpha02'
}
We used:
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
After making that change and then doing a Gradle sync, everything worked.
Not sure if it's related to the alpha release or to that version or if changing your Gradle version at all just forces a refresh that otherwise cannot be done with the other commands, but there ya go.
Make sure in your AndroidManifest.xml the package name is correct. That fixed the problem for me when my R.whatever was marked red!
Try to clean the project by doing the following:
If you are using Windows, open CMD, cd to your project directory and run gradlew clean.
I just had this problem and the reason was that after editing the layout android studio automatically added an import to the source files:
import android.R
Of course the main R class has not all the symbols in your layouts, which made everything a red mess.
Removing that line solved for me.
EDIT:
Seems like eclipse had the same problem early on.
I sometimes get this after updating Android Studio. Not always straight away but after a while (perhaps after a restart of the program).
Here is what has worked for me: Tools - Android - Sync project with Gradle files.
For some reason just clicking the "Sync now" link that shows up after changing the build.gradle file has not done any change for me. Even though the messages says approximately the same thing.
I had the same problem because in my strings.xml I forgot to escape a apostrophe. Use " \' " never " ' " in xml file!
I had that same problem crop up, too (most recently while I was at lunch--came back and WTF?). And since this was a simple Hello, World program, there wasn't many places these errors could hide. The XML files looked fine--I hadn't even touched the manifest. A clean did nothing.
So I commented out a section of my layout.xml to try to narrow down the problem. Sure enough, the errors went away.
And then I simply UNcommented out exactly what I had commented...and everything was hunky-dory. Strange! Perhaps there was some lingering issues that needed to be touched in order to cause a rebuild of the layout file. You'd think basic stuff like that wouldn't happen these days, but they do.
One more thing! It's possible that something may happen to Java as well. It's very hard to know the status of the Java run-time environment; just easier to start again. So here's one more thing to try: restart your computer, restart Android Studio, AND THEN Invalidate Caches and Restart. Yep, the whole-hog.
When all else fails restarting android sometimes helps. During the start files are loaded afresh and this enables detection of the R
This problem occurs when you rename the package name.
After renaming the package name, you must change the older package
name to a newer one.
For me it solved the problem once I changed that.
After that, you might get errors in xml files, that you have to change
the package name there also.
That's it.
I just had the R problem and after a few hours found that the problem was my regional spelling as used in one of my xml files. The problem word was behaviour, which is spelled behavior by Americans.
I am Australian and we are taught ye olde English way of spelling certain words and so I looked past it a number of times before the penny dropped.
Its a small thing, but it can easily sneak up and bite you on the nether regions and is hard to spot and can waste a lot of time.
In my case I had just added some new image files to the drawable folder and accidentally put a GIF in there with my PNGs. I had not incorporated them into the project at all yet. I removed the GIF and then did a clean and rebuild. That fixed it for me.
I had this exact problem when importing a Udacity Example Program. The Message Pane in Android Studio said the error was failing to load a .PNG in a sub-directory deep in the Project Files.
Turns out the PNG with all of the sub-directory path names was greater than the name length limit defined by Windows 7 (260 characters). I gave the Project a shorter name - to free up some space - and then Android Studio happily compiled.
After you tried make project, clean project, rebuild project but still doesn't work.
Try restart Android studio

R.java malfunctioning

I created a new xml file, and had an errant ? in it that prevented R.java from regenerating. I tried Cleaning the Project, and Fixing the Project Properties but no luck.
Then I realized the XML was creating the R.java from recreating itself, so I deleted the XML file and the R.java was back.
Now though, I am getting an error on all the calls to R.. calls saying that :
cannot be resolved or is not a field
So, for instance I have
setContentView(R.layout.detectlayout);
ERROR: detectlayout cannot be resolved or is not a field
for all of my calls to 'R.'. Any ideas?
I have tried all of the suggestions on SO already to no luck =/
Look at the 'import' section of your code. Since you deleted your original R, chances is Eclipse help you to fill in the R as com.android.R instead of com.yourproject.R
I also sometimes have problem in Eclipse Resource stuff, sometimes I found turning off and on the "auto buiild" function may help, or simply restarting Eclipse may sometimes help. It's kind of buggy under Mac OS.
This can happen if .R is imported. Eclipse will automatically add it sometimes when you have difficulty with with R.java
first don't bother deleting the R file it not going to make things better only worst lol
as you said you some times need to clean the project
when you start modifying resources its good to select the root of your project and do a alt+shift+o to reload all ressources
then f5 to refresh the tree
then clean the project
you also have to check that eclipse is set to build automatically (Project->build automatically).

Categories

Resources