【发布时间】:2013-05-13 10:00:34
【问题描述】:
我将一个项目导入 Android Studio ,但 R.java 始终为空。
public final class R {
}
我试过了:
- 制作项目、制作模块、重新制作等
- Project Setting-modules-sources,然后添加 src 和 gen 作为我的源文件夹。
但它们没有生效。
【问题讨论】:
-
这就是我们两个。即使在日食中
我将一个项目导入 Android Studio ,但 R.java 始终为空。
public final class R {
}
我试过了:
但它们没有生效。
【问题讨论】:
转到 File -> Settings -> Compiler 现在检查 use external build
然后重建项目
【讨论】:
android studio 用户的最佳解决方案:
转到:菜单选项卡 -> 构建 -> 重建项目
重建项目后。您的 R.Java 文件问题将自动解决..
【讨论】:
我设法重新生成了 R: 文件->设置->编译器
然后UNCHECK“使用进程内构建”
重建项目
【讨论】:
对我来说,R 类的问题与自动组织的导入有关。
由于 AndroidStudio 有允许自动导入的选项,它采用了错误的 R 类,这就是为什么没有找到 id 而 Gradle 抛出错误的原因!
因此请检查对 R 类的导入是否引用了您需要的。
【讨论】:
当我尝试添加另一个 flavour 时,我面临同样的情况。
我在其中一篇文章中找到了,我尝试了成功,并且成功了。按照我的做法:文件 -> 使缓存/重新启动无效。
【讨论】:
对我来说,问题出在这条多余的行上:
导入android.R;
【讨论】:
遇到了同样的问题并通过以下方式解决:
项目/模块/build/source/r/debug/package/R.java
可能在项目构建之前它就已经存在了,但我没有测试。
我希望这会有所帮助,即使答案来得有点晚,而且到现在
设置->编译器->[]使用外部编译
应该修复afaik ;-)
【讨论】:
所以,如果有人像我今天一样被卡住,这是最新的解决方案,尤其是对于 R.Java 文件。
如果你输了:
- 清理项目
- 重建项目
- 使缓存无效/重新启动
- 已删除 .gradle 文件夹
- 已删除 .idea 文件夹
- 已删除 app/build/generated 文件夹
- 检查了您的 xml 文件
- 检查了您的可绘制对象和字符串
然后试试这个:
检查您的项目 Gradle 脚本中的类路径依赖项,如果是,则:
classpath 'com.android.tools.build:gradle:3.3.2'
然后将其降级为:
classpath 'com.android.tools.build:gradle:3.2.1'
【讨论】:
如果您在项目的特定模块中遇到此问题,您可以尝试仅将该模块作为项目打开,然后构建它。这对我有用。当我尝试重新构建整个项目时,它无法为模块生成 R 文件。
【讨论】:
检查您的项目包!我从另一个项目中带来了一些类,并没有注意到包名称的细微变化。查看 AndroidManifest.xml 的顶部
【讨论】:
File->Invalide Cahces / Restart
【讨论】:
您是否按照此处的步骤操作?首先更新您的 Eclipse ADT 插件,然后在 Android Studio 中导出项目和导入。
【讨论】:
我在从 Eclipse 导出项目时遇到了很多问题(假设您要从那里导出)。在 Android Studio 中创建一个新项目,然后将 java 文件、xml 文件、布局目录等和 AndroidManifest 复制到新项目中的适当位置对我来说要容易得多。
如果您的项目已经有一个 R.java 文件,您可以尝试将其复制到新项目中。在 Android Studio 中,R.java 文件似乎位于 build/source/r/debug/your-package-name/
【讨论】:
我找到了我的解决方案here。简而言之,确保不仅更新了 Eclipse 插件(如果您使用的是 Eclipse)。还要确保更新了 Android SDK 工具、SDK 平台工具和 SDK 构建工具。在此之后重新启动您的机器。
【讨论】:
即使我尝试更新 here 中提到的 SDK 工具,我也失败了。
这是我解决问题的方法(对于导入的库项目)。
在文件 -> 项目结构 -> 模块中,我删除了有问题的项目, 并通过选择New Module -> Android Library Module再次添加它们。
重建项目后,我找回了所有R.java 文件。
【讨论】:
我会回答这个问题,即使它已经被抛出了很长时间,以防万一其他人得到它。
仅在 Android Studio 上测试过(但我猜它也适用于 Eclipse):
检查您的 build/source/r 文件夹。在那里,您应该找到一些标有您的 gradle 构建名称(默认值:debug)的目录。 验证与 R 关联的包的名称是您想要的。
我知道这个技巧解决了切换命名空间的问题,因为 Android Studio(或 Gradle 我不知道谁负责)在这种情况下似乎不会重新生成它。
虽然我从 Eclipse 导入项目时没有尝试过。
【讨论】:
只需使用顶部菜单栏中“构建”菜单中的“重建项目”即可。
【讨论】:
我在一个大型多模块项目中遇到了类似的问题,模块之间存在许多依赖关系。对我有用的是尝试与命令行分开构建所有未能在 Android Studio 中构建的模块。这让我知道了每个项目中缺少的资源。从我控制台中的项目级别,我做了:
$ cd moduleName
$ ../gradlew assembleDebug
这为我提供了许多“未找到与给定名称匹配的资源”错误,这些错误在我构建整个项目时之前未显示。
【讨论】:
我在使用 Android Studio 1.5.1 的项目中遇到了类似的问题。对我来说,使用以下命令从命令行构建项目解决了这个问题:
gradle assembleRelease
【讨论】:
在我的例子中,我在 xml 中的可绘制定义之前有一个空行。这是制动aapt 基本上不允许生成 R.java 。
【讨论】:
转到菜单选项卡 -> 项目 -> 构建 -> 自动(选中此选项)。而不是重新打开一个新项目。
【讨论】: