mk错误:找不到符号
主要错误信息 : 找不到符号
错误日志:
v6x/apps/aispeech/core_aistudy/src/com/noahedu/youyou/view/activity/AiSpeechBaseActivity.java:261: 错误: 找不到符号
version = speechManager.getAiSpeechVersion();
^
符号: 方法 getAiSpeechVersion()
位置: 类型为AiSpeechManager的变量 speechManager
v6x/apps/aispeech/core_aistudy/src/com/noahedu/youyou/view/activity/AiSpeechBaseActivity.java:269: 错误: 找不到符号
speechManager.startUpdateProductZip();
^
符号: 方法 startUpdateProductZip()
位置: 类型为AiSpeechManager的变量 speechManager
v6x/apps/aispeech/noah_intelligentStudy/src/com/noahedu/youyou/view/activity/MainActivity.java:4442: 错误: 方法不会覆盖或实现超类型的方法
@Override
^
v6x/apps/aispeech/noah_intelligentStudy/src/com/noahedu/youyou/view/activity/MainActivity.java:4473: 错误: 方法不会覆盖或实现超类型的方法
@Override
^
v6x/apps/aispeech/noah_intelligentStudy/src/com/noahedu/youyou/view/fragment/setting/VersionIfonFragment.java:51: 错误: 找不到符号
introText.setText("当前版本为:V_" + mSpeechManager.getAiSpeechVersion() + (SetttingUtil.isCamera800(getActivity()) ? "B" : "W"));
^
符号: 方法 getAiSpeechVersion()
位置: 类型为AiSpeechManager的变量 mSpeechManager
p712/apps/PenWrite/PenWriteP712/noah_screenShotNote/src/com/noahedu/ssnote/note/NoteView.java:302: 错误: 找不到符号
if (id == R.id.note_confirm) {
^
符号: 变量 note_confirm
位置: 类 id
p712/apps/PenWrite/PenWriteP712/noah_screenShotNote/src/com/noahedu/ssnote/note/NoteView.java:305: 错误: 找不到符号
} else if (id == R.id.note_cancel) {
^
符号: 变量 note_cancel
位置: 类 id
p712/apps/PenWrite/PenWriteP712/noah_screenShotNote/src/com/noahedu/ssnote/note/NoteView.java:308: 错误: 找不到符号
} else if (id == R.id.note_delete) {
^
符号: 变量 note_delete
位置: 类 id
p712/apps/PenWrite/PenWriteP712/noah_screenShotNote/src/com/noahedu/ssnote/note/NoteView.java:311: 错误: 找不到符号
} else if (id == R.id.note_top_area) {
^
符号: 变量 note_top_area
位置: 类 id
解决:
此类错误主要分为两种
1.找不到方法
2.找不到资源(id theme string dimen等)
第一种:
就是那个类没有那个方法,添加方法就可以了。
需要注意的是 此类可能是一个公共库的类,本地添加了,
但是没有上传到library svn (比如 http://192.168.1.186/svn/p381/library),还是会报错。
也有可能是因为版本变化,该类或者该方法没有了,比如:import junit.framework.Assert;
在junit4.12之后,Assert就过时了,提供了TestCase来取代;import junit.framework.TestCase;
不使用也可以直接去掉
第二种:
多出现在多moudle项目中
资源可能不在默认路径 比如资源默认路径是:LOCAL_RESOURCE_DIR := res
但是资源可能存在 LOCAL_RESOURCE_DIR := core_connection/src/main/res \
所以要将所用到的资源都声明 添加到 LOCAL_RESOURCE_DIR 比如:
指定资源文件:
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/noah_screenShotNote/res \
$(LOCAL_PATH)/noah_studynote/res \
$(LOCAL_PATH)/noah_copybook/res \
$(LOCAL_PATH)/noah_notepad/res \
$(LOCAL_PATH)/noah_penEntry/res \
$(LOCAL_PATH)/noah_penPicker/res \
$(LOCAL_PATH)/core_connection/src/main/res \
$(LOCAL_PATH)/penwrite/src/main/res \
$(LOCAL_PATH)/base_pro_common/src/main/res
注意:这样之后可能仍然提示找不到!(这很有可能是编译器的问题)
p712/apps/PenWrite/PenWriteP712/noah_screenShotNote/src/com/noahedu/ssnote/note/NoteView.java:302: 错误: 找不到符号
if (id == R.id.note_confirm) {
^
符号: 变量 note_confirm
位置: 类 id
解决方法: 采用改名的方式
1.全局查找 R.id.note_confirm
有没有其他地方定义了一样的 id,然后改个名字。
2.找到R.id.note_confirm
所在的布局(我这里是note.xml),然后全局搜索note.xml。如果有相同的改成不同。
我这里就是有很多叫做note.xml的布局。
将note改个不一样的名字就好了
--来自 shaoquanwei share