我正在尝试新的Android Studio。我使用build gradle选项从eclipse导出了一个项目。然后我在Android Studio中导入它。 gen下的R.java文件上有一个小红圈的j。在我的源文件中,无论我在何处引用资源,我都会“无法解析符号R”,例如: “R.layout.account_list”等。
我之前从未使用过Intellij。非常感谢任何帮助,因为Android Studio的答案显然不多。谢谢!
答案 0 :(得分:34)
PS:超过一年的答案,菜单已经改变。
答案 1 :(得分:28)
档案 - >使缓存无效
然后
重新启动应用程序
答案 2 :(得分:13)
到目前为止,网络上的答案都没有帮助。 构建>制作项目对我不起作用。对我来说,这就像选择其他选项一样简单(在Android Studio 1.3.1上):
构建>制作模块'模块名称'
答案 3 :(得分:7)
在我的情况下,我有一个从Eclipse导入的Activity文件,其中包含以下行:
import android.R;
所以我的所有R类都解析为SDK,只要我注释掉所有内容都正确地编译到我的包中。当我将项目从Mac移动到我的Windows机器时,我只注意到了这个问题。
答案 4 :(得分:4)
当我开始使用build.gradle来合并必要的数据(signingConfigs)来构建签名的.apk时,这个问题开始发生。在看起来是命令行的成功构建之后,我发现使用R. *进入任何类,所有R. *引用都未解析。
这里的答案对我没有帮助。我决定重新导入项目,它神奇地解决了这个问题。文件/导入项目...并在我的应用程序根文件夹中选择build.gradle文件。我很想知道为什么重新导入修复了这个:))
答案 5 :(得分:3)
这可能是由于资源构建失败造成的
一旦问题得到解决,仅仅Build > Rebuild Project
就能解决问题
答案 6 :(得分:2)
转到文件 - > 设置 - > 编译器现在检查使用外部版本
然后重建项目
答案 7 :(得分:2)
我在这个问题上多次受挫,特别是在将项目库作为另一个项目的一部分进行整合时。在最近出现这个困扰的问题时,我的Android lib项目使用的是WebView。事实证明,Gradle在名为" web"的子目录中构建R.class文件。其路径与我的源代码路径无关。当我导入它时,我的问题就消失了。我学到了什么?将来,只需对R.class进行文件搜索,并记下它所在的路径。然后使用该路径将包导入代码中。你必须手动执行此操作真的很糟糕。 Gradle应该自动导入它生成的包。
答案 8 :(得分:1)
关于以下内容,来自Crossle Song's answer
- 按 F4 进入项目结构,检查左侧的SDK
- 点击模块---> Source Tab,将gen和src检查为源
醇>
尽管有消息“我们将提供一个用户界面以便稍后配置项目设置等等”,但这对我有用。
答案 9 :(得分:1)
如果您的文件没有错误并再次重建项目,则应检查所有文件:
或者在:
检查use external build
并重建项目后。
答案 10 :(得分:1)
我也遇到了同样的问题,我在stackoverflow上经历了很多回答。然后我找到了一个解决方案来帮助我解决这个问题。
检查AndroidManifest.xml文件中的包名称。我忘了改变它,同时将另一个项目复制到新项目中。
答案 11 :(得分:1)
我的问题是我有档案' default.jpg'在drawable文件夹中,由于某种原因,每个资源都没有解决。删除该文件后修复!
答案 12 :(得分:1)
在IntelliJ 14上
检查是否排除了生成的来源。通常在项目结构中 - > [模块] - >路径 - >编译器输出:"继承编译输出路径"
答案 13 :(得分:1)
解决方案是打开项目结构窗口。 [按命令+;在mac ox s上。我不知道其他平台的关键捷径。你应该可以在"文件"下找到它。菜单。] 然后点击"模块"在"项目设置"部分,然后显示您的项目,最后将生成的R.java标记为Sources。
我正在使用Intellij的想法14.0 CE。 生成的R.java位于build / generated / source / r / debug / com / example / xxx
第一次真的不容易找到。
答案 14 :(得分:1)
按照以下五个步骤操作:
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
)我遇到了同样的问题,但经过所有步骤后,它对我有用。
答案 15 :(得分:1)
首先检查是否有导入android.R;在Android工作室中启用自动导入时会发生这种情况。
在那个注释后你使用R变量的代码的所有行(你可以评论整个类或...) 然后运行应用程序它重新生成R变量,你可以取消注释你的代码。
答案 16 :(得分:1)
除了上面的回复之外,以下是在IntelliJ(Not Studio)中对我有用的内容:
您需要将Android facet附加到现有Android模块。要执行此操作,请从“模块设置”中的模块列表中选择模块,点击顶部的“+”按钮并选择“Android”。见https://www.jetbrains.com/idea/webhelp/enabling-android-support.html。
答案 17 :(得分:0)
尝试清理并重建后没有成功,请检查res
文件夹中是否存在损坏的文件。
在我的情况下,损坏的.png
文件导致了所有问题。
答案 18 :(得分:0)
我使用intellij 2016.1遇到了这个问题,因为我已经将生成的源设置为转到基础项目目录中的目录。
例如,在Android方面,&#34; Generated Sources&#34;我有:
Directory for generated files: <project dir>/target/intellij-gen
当我将其更改为<project dir>/gen
时,问题就消失了。
同样,当我将其更改为<project dir>/gen2
时,问题也消失了 - 但是我必须做一个深度清理才能让它再次编译:
rm -rf ~/.IdeaIC2016.1/system/compile-server/<project>_<hash>
并删除所有生成的目录和target
目录。
答案 19 :(得分:0)
对于我来说,使用Android Studio 1.5.1,解决方案是使用稍微不同的名称重新创建整个项目。
我认为它没有处理应用程序名称&#34; Kommentator_AS&#34;,因为有几个地方包名为&#34; Kommentator&#34;代替。
答案 20 :(得分:0)
从Eclipse导入项目时出现此错误。原因是一些xml文件有错误。检查所有XML文件是否有错误。包括androidmanifest.xml,以及值,主题,样式,布局文件夹等.xml中的警告没问题,但错误会产生此错误。
然后,做一个清洁项目并重建。
答案 21 :(得分:0)
我解决了设置JAVA_HOME,CLASSPATH。
的问题设置Java_path时,人们有时会跳过JAVA_HOME和CLASSPATH。
因此,请尝试检查环境变量。
CLASSPATH - &gt; ;
JAVA_HOME - &gt; C:\ Program Files \ Java \ jdk(版本)或安装Java的地方
然后检查可能有错误的xml文件(不要命名知名的东西,如按钮,文本等)
答案 22 :(得分:0)
我有同样的问题。以下三个文件中的两个文件包名称错误。我手动更新了软件包名称,一切都重新开始了。
GEN / COM /示例/应用程序/ BuildConfig.java
GEN / COM /示例/应用程序/ Manifest.java
GEN / COM /示例/应用程序/ R.java
我不确定是什么原因导致他们改变,因为我之前从未修改过这些文件。
答案 23 :(得分:0)
就我而言:
我必须复制参考 R文件;即右键单击gen /&lt; package&gt; / R和复制参考。然后将其粘贴到您无法解析的代码中的R上。
这解决了我(在尝试了其他一切之后)。仍然不确定为什么它是诚实的。
答案 24 :(得分:0)
这些答案都没有帮助我!
我的问题不是问题!该程序可以完全编译并在设备上运行,但IDE给了我一个烦人的语法错误。它强调了包含“R”的代码行。
我可以解决这个问题的方法:
我刚在“myapp / gen /com.example.app/”文件夹中添加了这三个类:
BuildConfig
package com.example.app;
public final class BuildConfig {
public final static boolean DEBUG = true;
}
清单
package com.example.app;
public final class Manifest {
}
<强> - [R 强>
package com.example.app;
public final class R {
}
答案 25 :(得分:0)
就我而言,我发现&#34; android.R.layout.account_list&#34;被引用而不是&#34; R.layout.account_list&#34;。只需删除&#34; android。&#34;可以解决问题。希望这有用,因为有时候你太专注时可能会忽视。
答案 26 :(得分:0)
只需清理项目,然后将项目与gradle文件同步。
答案 27 :(得分:0)
就我而言(Linux,Android Studio 0.8.6),以下内容有所帮助:
档案&gt;项目结构&gt;模块&gt;选择主模块&gt;选择其方面&gt;生成的来源
更改&#34;生成文件的目录的值:&#34;
这
MY_PATH/.idea/gen
到
MY_PATH/gen
如果没有编译代码,apk就会构建并成功运行
但Android Studio编辑器突出显示mypackage.R.anything为&#34;无法解析&#34;在所有子包类
中答案 28 :(得分:0)
https://stackoverflow.com/users/1373278/hoss发布的解决方案 以上为我工作。我在这里复制它是因为我还不能评论hoss'post:
删除import android.R;
来自您的活动文件。
我的设置:
Android Studio 1.2.2
将项目从一台Mac导出到Git(一切正常)。然后我从Git在另一台Mac上导入了该项目。多数民众赞成停止解析资源文件。
我在这个帖子上尝试了一切:
除了从我的活动java文件中删除import android.R;
之外没有任何作用。
为避免此问题,请将.idea
文件夹添加到.gitignore
文件中。在Android Studio中,git为gitignore提供了一个很好的插件。安装此插件并右键单击.idea > Add to .gitignore
答案 29 :(得分:0)
检查build.gradle中的构建工具版本(对于模块应用程序)。然后转到android sdk manager看看是否安装了版本,如果没有安装它,或者将构建工具版本更改为如下所示安装版本。
android {
buildToolsVersion "22.0.1"
..
..
..
}
答案 30 :(得分:0)
我遇到了同样的问题,并通过删除一个额外的库来修复它。
要尝试此解决方案,请转到文件&gt;项目结构(在Mac上你可以使用命令&#34; Apple;&#34;)
然后在左侧标签上选择应用。转到依赖项选项卡并删除额外的库。