我正在研究我的应用程序,一切正常,直到我尝试在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;
在第二个活动中:
import android.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
有谁知道如何解决这一问题?
编辑:我删除了import android.R;
,现在它正常工作。
你不应该导入android.R
。这应该是自动生成和识别的。 This question包含很多有用的提示,如果你在删除导入后引用R
时会出现一些错误。
删除导入后的一些基本步骤,如果出现这些错误:
[a-z0-9.]
。由于某种原因,不允许大写字母或符号。如果你使用多种口味?
- 确保资源文件不仅仅在其中一种风格和主要文件中声明/添加。
示例:包含符号变量的a_layout_file.xml
文件
SRC:
flavor1 / res / layout /(没有文件)
flavor2 / RES /布局/ a_layout_file.xml
主/ RES /布局/ a_layout_file.xml
此设置将给出错误:找不到符号变量,这是因为资源文件只能在两种风格中或仅在主体中。
如果您在项目中使用String
构建配置字段,则可能是这种情况:
buildConfigField "String", "source", "play"
如果像上面那样声明String,则会导致错误发生。修复方法是将其更改为:
buildConfigField "String", "source", "\"play\""
确保导入的R不是来自其他模块。我已经将一个类从一个模块移动到一个主项目,而R是模块中的一个。
确保你的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>
确保您的变量在引用它的方法的范围内。例如,我在类中的方法中本地定义了一个textview,并在另一个方法中引用它。
我将textview定义移到了类定义正下方的方法之外,因此另一个方法可以访问定义,从而解决了问题。
@ TouchBoarder上面的答案的另一个替代方案是,您可能还有两个具有相同名称但不同api版本的布局文件。您应该删除旧的my_file.xml文件
my_file.xml
my_file.xml(v21)
在android studio单击文件中打开项目,然后单击“使高速缓存/重新启动无效”