Java+Android Studio开发简易Quiz应用遇到编译错误求助
报错解决方案
所有报错可按以下步骤逐一修复:
- 首先补充MainActivity缺失的类导入声明,在现有import代码后添加以下内容:
import android.widget.Button; import android.widget.TextView; import java.util.ArrayList; import java.util.Random;
该步骤可解决Cannot resolve symbol 'TextView'、Cannot resolve symbol 'Button'、Cannot resolve symbol 'ArrayList'、Cannot resolve symbol 'Random'四类报错。
- 移除QuizModal实例化时的命名参数前缀:Java不支持
参数名: 参数值的构造传参写法,该语法属于Kotlin,需要将getQuizQuestion方法内的add代码修改为仅传参数值的形式,示例如下:
private void getQuizQuestion(ArrayList<QuizModal> quizModalArrayList) { quizModalArrayList.add(new QuizModal("G", "t", "s", "d", "a", "a")); quizModalArrayList.add(new QuizModal("fff?", "tgooo", "to learn new languages", "to learn android", "all", "all")); quizModalArrayList.add(new QuizModal("ggg?", "tpooooo", "to learn new languages", "to learn android", "all", "all")); quizModalArrayList.add(new QuizModal("hhh?", "doooo", "to learn new languages", "to learn android", "all", "all")); }
该步骤可解决Cannot resolve symbol 'question'报错。
- 补全字符串的闭合双引号:原有代码中第二个、第四个QuizModal实例的option1参数值缺少末尾的双引号,会导致编译器语法解析混乱,触发
Variable learn is already defined in the scope类报错,上一步修改后的代码已经补全了引号,直接替换即可。 - 统一包名:报错中出现的
se.hv.ei.quizzapp.QuizModal包名比实际声明的包名多了字母z,检查两个文件顶部的package声明,确保MainActivity和QuizModal的包名统一为se.hv.ei.quizapp,该步骤可解决Cannot resolve method 'add(se.hv.ei.quizzapp.QuizModal)'报错。
所有修改完成后,点击Android Studio顶部的File → Sync Project with Gradle Files,等待同步完成即可消除全部报错。
内容的提问来源于stack exchange,提问作者BananaSweden
相关产品推荐
相关产品推荐

