添加翻译后出现‘package R不存在’错误,常规操作无效该如何解决?
Android中R文件不存在问题的排查与解决
操作过程与问题现象
原有代码
bind.totalRef.setText("Total Refe : "+pref.getInt(pref.successRef) ); bind.pendingRef.setText("Pending Refer : "+pref.getInt(pref.pendingRef) );
修改后的代码
bind.totalRef.setText(getString(R.string.ilosc_poleconych) + " : " +pref.getInt(pref.successRef) ); bind.pendingRef.setText(getString(R.string.oczekujacych_poleconych) + " : " +pref.getInt(pref.pendingRef) );
在strings.xml中添加的内容
<string name="ilosc_poleconych">Total Refer</string> <string name="oczekujacych_poleconych">Pending Refer</string>
出现的错误提示
package R does not exist bind.totalRef.setText(getString(R.string.ilosc_poleconych) + " : " +pref.getInt(pref.successRef) ); ^ package R does not exist bind.pendingRef.setText(getString(R.string.oczekujacych_poleconych) + " : " +pref.getInt(pref.pendingRef) ); ^
已尝试执行Clean Project、Rebuild Project、Sync Project with Gradle、Invalidate Caches等清理操作,均无效。
问题原因
- R文件导入错误:代码中可能误导入了系统的
android.R,而非当前项目的自定义R文件 - strings.xml语法错误:添加的字符串标签格式不规范(比如标签未正确闭合、特殊字符未转义),导致Android Studio无法生成正确的R文件
- 包名不匹配:AndroidManifest.xml中的package属性与代码所在类的包名不一致,导致R文件生成路径错误
- Gradle配置或依赖冲突:项目的compileSdkVersion、targetSdkVersion配置异常,或者依赖库版本冲突,阻碍了R文件的生成
解决方法
- 检查R文件导入:打开代码文件顶部,确认导入的是
import 你的项目包名.R;,如果存在import android.R;直接删除,然后重新编译 - 修复strings.xml语法:把添加的字符串标签分开换行,避免格式混乱,确保每个
标签都正确闭合:
同时检查文件中是否存在其他语法错误(比如未转义的<string name="ilosc_poleconych">Total Refer</string> <string name="oczekujacych_poleconych">Pending Refer</string>&、引号嵌套等) - 核对包名一致性:打开AndroidManifest.xml,确认根标签
manifest的package属性值,和代码类所在的包名完全一致 - 重置Gradle配置:删除项目根目录下的
.gradle文件夹和模块目录下的.gradle文件夹,然后重新执行Sync Project with Gradle Files,再进行Rebuild - 确认上下文有效性:如果代码不在Activity或Fragment中,需要传入Context对象调用
context.getString(R.string.xxx),但这一步要先解决R文件不存在的核心问题
内容的提问来源于stack exchange,提问作者JAzPL
相关产品推荐
相关产品推荐

