Android Building Your First App 4: Build Error: Cannot find symbol variable EXTRA_MESSAGE
Android Building Your First App 4: Build Error: Cannot find symbol variable EXTRA_MESSAGE
我将此作为一个新问题 post 解决,尽管我自己设法找到了问题的解决方案,尽管之前已经直接或间接地提出过这个问题。我在 Whosebug 提到了以下 posts 作为示例:
计算器。com/questions/39872779/extra-message-and-putextra
计算器。com/questions/38938297/android-studio-cannot-find-symbol-variable
这样做的原因 post,是因为这个问题似乎是遵循 Android 开发人员 "Building Your First App" 指南的初学者(包括我自己)中反复出现的陷阱。似乎很难找到具体解释为什么会出现问题的答案。我花了几个小时在 Android Studio 中搜集并在线搜索,直到找到答案。
问题描述:
虽然已执行步骤 "Start Another Activity",因此尝试 运行 应用程序,但您可能会遇到构建错误,并显示以下消息:
"error: cannot find symbol variable EXTRA_MESSAGE"
此外,EXTRA_MESSAGE 的实例在 Android Studio 的编程代码中标为红色。
当您尽最大努力按照指南中的描述进行操作时,可能很难理解为什么会出现此错误。已多次给出的简短答案是您没有在 MainActivity 中将 EXTRA_MESSAGE 变量声明为 public 静态变量。但这并没有说明应该如何执行声明(语法),或者您如何首先设法避免声明。
长答案:
在 MainActivity.java 中,缺少以下短语:
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
该短语声明了一个名为EXTRA_MESSAGE的字符串类型的符号变量。符号变量是 public 常量,因此它在应用程序的所有方法中都可用,而不仅仅是 MainActivity。该短语实际上出现在指南中,但由于指南的设计方式,很容易被忽略:
"Respond to the send button"下的第1步提示添加方法sendMessage(),如下:
(Screenshot) Respond to the send button
目前,该方法不执行任何操作,因为仅在程序代码应插入的位置插入注释。后面在"Build an Intent"下提示添加EXTRA_MESSAGE常量和sendMessage()代码,如下所示:
(Screenshot) Build an Intent
此时,如果你只是简单地复制sendMessage()方法下的程序代码,而忽略了你还需要在“@Override.”这句话上面添加新短语,你就会搞砸了。
但是,该指南对句子中的术语的解释很差:
"Public"、"final"、"static"和"String",以及EXTRA_MESSAGE和com.example.myfirstapp.MESSAGE的区别。我认为这本可以改进。
希望本文post对其他遇到同样问题的初学者有所帮助。
我将此作为一个新问题 post 解决,尽管我自己设法找到了问题的解决方案,尽管之前已经直接或间接地提出过这个问题。我在 Whosebug 提到了以下 posts 作为示例:
计算器。com/questions/39872779/extra-message-and-putextra
计算器。com/questions/38938297/android-studio-cannot-find-symbol-variable
这样做的原因 post,是因为这个问题似乎是遵循 Android 开发人员 "Building Your First App" 指南的初学者(包括我自己)中反复出现的陷阱。似乎很难找到具体解释为什么会出现问题的答案。我花了几个小时在 Android Studio 中搜集并在线搜索,直到找到答案。
问题描述:
虽然已执行步骤 "Start Another Activity",因此尝试 运行 应用程序,但您可能会遇到构建错误,并显示以下消息:
"error: cannot find symbol variable EXTRA_MESSAGE"
此外,EXTRA_MESSAGE 的实例在 Android Studio 的编程代码中标为红色。
当您尽最大努力按照指南中的描述进行操作时,可能很难理解为什么会出现此错误。已多次给出的简短答案是您没有在 MainActivity 中将 EXTRA_MESSAGE 变量声明为 public 静态变量。但这并没有说明应该如何执行声明(语法),或者您如何首先设法避免声明。
长答案:
在 MainActivity.java 中,缺少以下短语:
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
该短语声明了一个名为EXTRA_MESSAGE的字符串类型的符号变量。符号变量是 public 常量,因此它在应用程序的所有方法中都可用,而不仅仅是 MainActivity。该短语实际上出现在指南中,但由于指南的设计方式,很容易被忽略:
"Respond to the send button"下的第1步提示添加方法sendMessage(),如下:
(Screenshot) Respond to the send button
目前,该方法不执行任何操作,因为仅在程序代码应插入的位置插入注释。后面在"Build an Intent"下提示添加EXTRA_MESSAGE常量和sendMessage()代码,如下所示:
(Screenshot) Build an Intent
此时,如果你只是简单地复制sendMessage()方法下的程序代码,而忽略了你还需要在“@Override.”这句话上面添加新短语,你就会搞砸了。
但是,该指南对句子中的术语的解释很差: "Public"、"final"、"static"和"String",以及EXTRA_MESSAGE和com.example.myfirstapp.MESSAGE的区别。我认为这本可以改进。
希望本文post对其他遇到同样问题的初学者有所帮助。