Developing for Android in Eclipse: R.java not regenerating

前端 未结 30 3084
孤城傲影
孤城傲影 2020-11-21 07:04

I\'ve found out that my R.java is never updated, so it doesn\'t contain information about my new resources, so I decided to delete it and thought that Eclipse would generate

相关标签:
30条回答
  • 2020-11-21 07:40

    Android has added in SDK build tool ADT 22 for the building mechanism. You just need to do the following steps.

    1. Update Android SDK Tool
    2. Update Android SDK Platform Tool
    3. Update Android SDK Build Tool
    4. Add the path of your build tool to the path variable. (path up to---- YOUR DIRECTORY-PATH\android-sdk\build-tools)

    This will solve the issue.

    0 讨论(0)
  • 2020-11-21 07:40

    R.java will never be generated if there are any errors in the res folder. For example, in the drawable subfolder there are two files which have the same name, one is icon.png and the other is icon.html.

    You can see some error in the Eclipse console log window which is saying "Resource entry icon is already defined.". After deleting icon.html, you can clean or just delete the gen folder. You will find that R.java is created.

    0 讨论(0)
  • 2020-11-21 07:45

    This site suggests:

    if you run a clean on the project it should regenerate all the generated Java files, namely R.

    ...and...

    In Eclipse, under the Project menu, is an option build automatically. That would help you build the R.java file everytime modifications are made. The Clean... option is also there under Project.

    This site suggests another solution.

    0 讨论(0)
  • 2020-11-21 07:45

    I found this happening to me with a broken layout and everything blows up. Relax, it's like that old mistake when you first learned programming C where you forget one semicolon and it generates a hundred errors. Many panic, press all the buttons, and makes things worse.

    Solution

    • Make sure that anything the R. links to is not broken. Fix all errors in your XML files. If anything in the ADKs are broken, R will not regenerate.
    • If you somehow hit something and created import android.R in your activity, remove it.
    • Run Project -> Clean. This will delete and regenerate R and BuildConfig.
    • Make sure Project -> Build Automatically is ticked. If not, build it manually via Menu -> Project -> Build Project .
    • Wait a few seconds for the errors to disappear.
    • If it doesn't work, delete everything inside the /gen/ folder
    • If it still doesn't work, try right-clicking your project -> Android Tools -> Fix Project Properties.
    • Check your *.properties files (in the root folder of your app folder) and make sure that the links in there are not broken.
    • Right-click your project > properties > Android. Look at the Project Build Target and Library sections on the right side of the page. Your Build Target should match the target in your AndroidManifest.xml. So if it's set to target 17 in AndroidManifest, make sure that the Target Name is Android 4.2. If your Library has an X under the reference, remove and re-add the library until there's a green tick. This might happen if you've moved a few files and folders around.

    What to do if R doesn't regenerate

    This usually happens when you have a broken XML file.

    • Check errors inside your XML files, mainly within the /res/ folder
    • Common places are /layout/ and /values/, especially if you've changed one of them recently
    • Check AndroidManifest.xml. I find that often I change a string and forget to change the string name from AndroidManifest.xml.
    • Check that Android SDK Build-tools is installed. Window -> Android SDK Manager -> Tools -> Android SDK Build-tools
    • Make sure when you update the Android SDK Tools, you also update the Android SDK Platform-tools and Android ADK Build-tools. Build fails silently if they don't match.
    • If you can't find the issue, right click /gen/ -> Restore from local history... -> tick R.java -> click Restore. Even if it doesn't solve the problem, it will clear out the extra errors to make the problem easier to find.
    0 讨论(0)
  • 2020-11-21 07:46

    Make sure you are not importing

    android.R;

    0 讨论(0)
  • 2020-11-21 07:47

    My problem was inside a menu file. The compiler doesn't seem to warn you if strings which do not exist inside strings.xml are referenced in menu files. Check if your items in your menu XML files reference any strings which do not exist in your strings.xml. Usually in android:title.

    0 讨论(0)
提交回复
热议问题