我发布这是一个新问题,虽然我已经设法自己找到问题的解决方案,尽管事先已经问过这个问题,无论是直接还是间接。我在StackOverflow中提到以下帖子作为示例:
stackoverflow.com/questions/39872779/extra-message-and-putextra
stackoverflow.com/questions/38938297/android-studio-cannot-find-symbol-variable
这篇文章的原因在于,这个问题似乎是初学者(包括我自己)中反复出现的陷阱,他们遵循指南"构建你的第一个应用程序"由Android开发者提供。似乎很难找到答案,具体解释问题出现的原因。我花了几个小时玩Android Studio并在线搜索,直到找到答案。
问题描述:
在按照步骤"启动另一个活动",从而尝试运行应用程序时,您可能会遇到构建错误,并显示以下消息:
"错误:找不到符号变量EXTRA_MESSAGE"
此外,EXTRA_MESSAGE的实例在Android Studio的编程代码中显示为红色。
当您按照指南中的说明进行最佳操作时,可能很难理解为什么会出现此错误。已经多次给出的简短答案是您没有在MainActivity中将EXTRA_MESSAGE变量声明为公共静态。但是,这没有解释声明应该如何执行(语法),或者你是如何设法避免声明的。
答案 0 :(得分:1)
答案很长:
在MainActivity.java中,缺少以下短语:
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
该短语声明了一个名为EXTRA_MESSAGE的符号变量,该变量是string-type。符号变量是公共常量,因此它可以在应用程序的所有方法中使用,而不仅仅是MainActivity。该短语实际上出现在指南中,但由于指南的设计方式,很容易忽略:
在“响应发送按钮”下的步骤1,系统会提示您添加方法sendMessage(),如下所示:
(Screenshot) Respond to the send button
目前,该方法不执行任何操作,因为只在程序代码应该插入注释。稍后,在“Build an Intent”下,系统会提示您添加EXTRA_MESSAGE常量和sendMessage()代码,如下所示:
此时,如果只是简单地复制sendMessage()方法下的程序代码,你就会陷入困境,同时忽略你还需要在句子“@Override”上面添加新短语。
但是,该指南对句子的条款提供了不好的解释: “Public”,“final”,“static”和“String”,以及EXTRA_MESSAGE和com.example.myfirstapp.MESSAGE之间的区别。我认为这可以得到改善。
我希望这篇文章能够帮助那些陷入同样问题的初学者。