我正在处理我的应用程序,一切正常,直到我尝试在java中显示图像。
我运行应用程序一次,它正常运行,图片显示。 之后它要我导入一些库并导入它们。之后我的活动出错了。
错误如:
Gradle: error: cannot find symbol variable activity_main
Gradle: error: cannot find symbol variable button1
Gradle: error: cannot find symbol variable button2
Gradle: error: cannot find symbol variable textView
Gradle: error: cannot find symbol variable secondActivity
在MainActivity中,我导入了这些库:
import android.R;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;
在secondActivity中:
import android.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
有谁知道如何解决这个问题?
编辑:我删除了import android.R;
,现在它正常工作。
答案 0 :(得分:65)
您不应导入android.R
。这应该是自动生成和识别的。如果您在删除导入后引用R
时出现错误,则This question会包含很多有用的提示。
删除导入后的一些基本步骤,如果出现这些错误:
[a-z0-9.]
组成。由于某种原因,不允许大写字母或符号。答案 1 :(得分:24)
如果您使用 多种口味 ?
- 确保资源文件不是仅在其中一种风格和主要风格中声明/添加。
示例:包含符号变量的a_layout_file.xml
文件
<强>的src:强>
flavor1 / res / layout /(无文件)
<强> flavor2 强> / RES /布局/ a_layout_file.xml
主要强> / RES /布局/ a_layout_file.xml
此设置将给出错误:找不到符号变量,这是因为资源文件只能在主要文件中包含或两种风格。
答案 2 :(得分:14)
如果您在项目中使用String
构建配置字段,可能就是这种情况:
buildConfigField "String", "source", "play"
如果您像上面一样声明String,则会导致错误发生。修复方法是将其更改为:
buildConfigField "String", "source", "\"play\""
答案 3 :(得分:1)
确保导入的R不是来自其他模块。我已经将一个类从一个模块移动到一个主项目,而R是模块中的一个。
答案 4 :(得分:0)
确保您的MainActivity
文件中有.ScanActivity
和AndroidManifest.xml
:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ScanActivity">
</activity>
答案 5 :(得分:0)
确保您的变量在引用它的方法的范围内。例如,我在类中的方法中本地定义了一个textview,并在另一个方法中引用它。
我将textview定义移到了类定义正下方的方法之外,因此另一个方法可以访问定义,从而解决了问题。
答案 6 :(得分:0)
@ TouchBoarder上面的答案的另一个替代方案是,您可能还有两个具有相同名称但不同api版本的布局文件。您应该删除旧的my_file.xml文件
my_file.xml
my_file.xml(v21)
答案 7 :(得分:0)
在android studio中打开项目 点击文件 并单击“使缓存无效/重新启动”
答案 8 :(得分:0)
确保您在 XML 布局文件中引用的控件确实存在,即使它没有被使用。
我在“删除未使用的资源”重构之后遇到了这个问题。
例如,如果布局中没有progressBar,你就会得到这个错误。
rootView = inflater.inflate(R.layout.fragment_stats, container, false);
mProgressBar = rootView.findViewById(R.id.progressBar);
答案 9 :(得分:0)
请检查您是否不小心将 XML 文件添加到布局文件夹中。