简体   繁体   中英

R.Java not generated

我已经从谷歌代码下载了代码但是当我在我的eclipse IDE中导入该项目时,它不会生成R.Java文件。我搜索了许多博客和论坛并尝试了很多东西,比如清理,重建,从现有来源创建项目等但仍然面临有些人提到它有时是由SVN客户端软件引起的,但是没有人提到任何解决方案。如果你自己下载并找到确切的问题,我将非常感谢你们。

In general, to make it work:

  1. import project into eclipse (File -> Import -> General -> Existing Projects into Workspace)
  2. in Eclipse, Manually create gen folder and add it as source folder (right click on your project, Build Path -> Configure Build Path -> Add folder)
  3. Clean your project, you suppose to get R.java generated

But It doesn't, Why?

Because there are some compile error (or bug?) regarding to the xml file in res, so R is not genetared (I've tested on my Mac):
In res/values/styles.xml: commented out the following:

<style name="iWindowTitleBackground" parent="android:WindowTitleBackground">    
  <item name="android:background">@drawable/title_bar</item>        
</style>

In res/values/themes.xml: comment out the following:

<item name="android:windowTitleBackgroundStyle">@style/iWindowTitleBackground</item>

Then do a Project -> Clean, you should get R.java generated.

There is bug reported that parent="android:WindowTitleBackground" cannot be resolved in some operating system, check out here for more details.

Whenever your generated R class isn't generated, it indicates that there's a problem with generating it due to some parsing issue from the XML resources. Check the error console in your IDE to figure out what's specifically wrong.

Common problems are:

  • An unescaped character in your strings.xml , for instance you're instead of you\\'re
  • Missing layout_width or layout_height tags in layout resources
  • Missing namespace declarations
  • Variable names that aren't supported by Java, for instance due to capitalization or use of spaces, hyphens or other unsupported characters
  • Any other kind of syntax error in XML
  • Check Console for the Issues (Image is attached where console is defining the issue why R is not generating in your project)

在此输入图像描述

I encountered the same problem trying to build the wiktionary sample code I downloaded from code.google.com ( here ) I had imported into a new Eclipse Juno project set to use Android 4.1 and JDK 1.6.

Here is an excerpt of the console after building the project:

W/ResourceType( 6292): Bad XML block: header size 103 or total size 0 is larger than data size 0 C:\\Development\\WorkJava\\android\\sampleapps\\Wiktionary\\com.example.android.wiktionary.LookupActivity\\res\\values\\strings.xml:23: error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute? C:\\Development\\WorkJava\\android\\sampleapps\\Wiktionary\\com.example.android.wiktionary.LookupActivity\\res\\values\\strings.xml:23: error: Unexpected end tag string

Here's an excerpt of the res/values/string.xml:

<resources>

<string name="app_name">Wiktionary Word of the Day</string>
<string name="app_descrip">A fast Wiktionary browser and Word-of-day widget</string>
<string name="app_credits">"All dictionary content provided by Wiktionary under a GFDL license.  http://en.wiktionary.org\n\nIcon derived from Tango Desktop Project under a public domain license.  http://tango.freedesktop.org".</string>
<string name="template_user_agent">"%s/%s (Linux; Android)"</string>
<string name="template_wotd_title">"Wiktionary:Word of the day/%s %s"</string>
<string name="template_wotd_archive_title">"Wiktionary:Word_of_the_day/Archive/%s/%s"</string>

SOLUTION

Adding formatted="false" to the 3 last string definitions (containing two %s substitution placeholders), as shown below, solved the problem. Rebuilding the project generated R.java in the gen folder.

<resources>

<string name="app_name">Wiktionary Word of the Day</string>
<string name="app_descrip">A fast Wiktionary browser and Word-of-day widget</string>
<string name="app_credits">"All dictionary content provided by Wiktionary under a GFDL license.  http://en.wiktionary.org\n\nIcon derived from Tango Desktop Project under a public domain license.  http://tango.freedesktop.org".</string>
<string name="template_user_agent" formatted="false">"%s/%s (Linux; Android)"</string>
<string name="template_wotd_title" formatted="false">"Wiktionary:Word of the day/%s %s"</string>
<string name="template_wotd_archive_title" formatted="false">"Wiktionary:Word_of_the_day/Archive/%s/%s"</string>

I still had this error after checking that all my resources had no errors, cleaning, rebuilding, restarting, etc.

I fixed this by filtering out the SVN files from the project.

How to exclude .svn directories from search in Eclipse?

While the question mentions search, the solution pertains to what files are used in compiling as well.

Restarted, and everything was fine.

“.xml文件”和“图像文件”并确保小写的名称。

当我遇到这个问题时,我删除了gen文件夹,它将使用所有r文件重新创建

you will see at the top of your file it says import android.r or r.java i forget. you need to remove this line, clean the project, and rerun.
basically android uses R to reference items within your project. but when that import statement is there it overrides looking at your project directories and uses androids

将工作区更改为新目录并设置其权限,以使其可供所有人使用

In my case, i found an image file name containing an uppercase inside res/drawable. after changing the image name. it was solved and i could build the project

I faced this problem many times. The rule of thumb is to check your .xml files.
R.java is not generated when there is any issue in .xml file.

Simply click on

Build --> Clean Project

This worked for me

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM