1. 程式人生 > >同一個project下多個包,其中一個包出現R cannot be resolved to a variable

同一個project下多個包,其中一個包出現R cannot be resolved to a variable

現象:
在同一個project下編寫了2個包,其中一個R.layout可以正常呼叫,但另一個包中呼叫R檔案會出現R cannot be resolved to a variable報錯。


驗證過程:
從網上搜索此問題解決方案,發現比較雜亂,但大體上都是推薦使用如下流程驗證:
1. 檢查Android 的SDK是否丟失需要重新下載,檢查build path
2.確保class沒有import Android.R;
3,錯誤class引用的layout的xml檔案沒有錯誤
4.檢查AndroidManifest.xml檔案,裡邊的package,layout配置檔案,strings.xml等的字串全部書寫正確
5.layout的xml檔案中引用的strings.xml中的字串拼寫完全正確
6.在layout 的xml檔案手寫新增一個控制元件,看id能否在R.java中自動生成,如果不能,那很大可能就是這個layout 的xml檔案有問題,檢視格式是否使用正確,或者包含什麼非法字串,或者呼叫到了不正確的字串,等等,可以使用排除法,挨個去掉控制元件,直到發現error message消失或者id能在R.java中自動生成。
7.刪掉gen資料夾,使R.java重新自動生成一次,如果不能生成,繼續檢查layout的xml檔案是否有如上不易發覺的問題
8.Clean project ,重新build,或者重新import project。
9.重啟eclipse
10.重啟電腦,以防Android 虛擬機器的問題


我按照上述步驟重複後始終沒有發現問題;
後懷疑是fail的那個包的R.java沒有生成導致,此時問題演變成了讓fail的包的R檔案生成的問題(此方法我最後也沒有成功讓他生成);
在fail的那個包中新建一個activity,在oncreate中呼叫R.layout,發現竟然可以,檢查成功的R檔案發現他呼叫的就是另一個包的R檔案,res中的資源已經生成在同一個R檔案中,重新回到自己的程式碼中,刪除所有呼叫R檔案的地方,重新輸入,在R檔案選擇時選擇另外一個包的R檔案,然後呼叫res中的資源成功!


結論:
呼叫資源時,先確認res中的xml,圖片等都是正確的不會報錯,然後尋找資源生成的R檔案,呼叫時記得選擇正確的有res的R檔案,不要呼叫R.android等莫名其妙的R檔案,這個問題就解掉了。


ps:有時編輯程式碼時注意不要複製貼上,比如這個R檔案的呼叫,複製貼上時可能會預設成其他的R檔案,從而導致報錯。

相關推薦

同一個project其中一個出現R cannot be resolved to a variable

現象: 在同一個project下編寫了2個包,其中一個R.layout可以正常呼叫,但另一個包中呼叫R檔案會出現R cannot be resolved to a variable報錯。 驗證過程:

maven專案程式碼正確的情況整個專案中的類報cannot be resolved to a type

eclipse中,匯入maven專案, install後,仍有很多類報cannot be resolved to a type,這是因為未update maven, 並且專案的clean與maven的clean不同步的結果 解決方案:   step1.  Project--

QueryRunner cannot be resolved to a type:關於不能正常匯入的問題

在操作一個功能模組的時候,出現一個問題: 我原則是按著專案指導一步一步走的,但卻出現, QueryRunner cannot be resolved to a type,這個問題應該屬於Xxx cannot be resolved to a type. 我解決方案: 我百度了QueryRunner包是

org.apache.AnnotationProcessor cannot be resolved to a type

 private org.apache.AnnotationProcessor _jsp_annotationprocessor 該語句報錯,因為我的環境是jdk1.8+Tomcat8 而當初開發該專案時用的是Tomcat6,所以在org.apache包下找不到Annot

使用Maven建立Web專案後jsp引入靜態檔案提示報錯。JSP 報錯:javax.servlet.ServletException cannot be resolved to a type

使用Maven建立Web專案後,jsp引入靜態檔案提示報錯。 錯誤提示:javax.servlet.ServletException cannot be resolved to a type 錯誤如下圖: 解決方案: 1. 在Maven的pom檔案中引發如下依賴即可: &

idea——同一個專案module(eclipse的同一個工作空間的專案?)

(idea)建立專案下多個module==(eclipse)同一個工作空間下的多個專案 以往的Eclipse、NetBeans等開發工具不同,IDEA的Project相當與Eclipse的Workspace,而Module相當於Project。 下邊就給出Eclipse與IDEA的概念的

iOS Xcode 同一個Project建立target

目前在Xcode中建立target有兩種方式,下面分別對這兩種建立方式做詳細的解說 第一種:通過新建target(File ——> New——>Target) 1.建立新工程,如下圖所示: 2.建立target,如下圖所示: 3.點選之後就會出現如下所圖,

mysql 欄位儲存判斷一個值是否在其中

表C_file,其中有個欄位是spile,他存的是字元形式,例如:1,2,10,11 C_file ID     spile 1      2,10,11 2      2,3,20,22 3      1,6,8 4      5,6,1,9 SQL:   select

jsp href 傳引數其中有引數為字串

<a href='javascript:void(0);' onclick='commitAgain(${msgvo.id}, "${msgvo.title}")'>提交</a&g

Java操作POI批量匯出excle打壓縮

一、前端JS //站內搜尋查詢報表-Excel匯出 function exportRecord(){ var browseUrl=$("#browseUrl").val(); if(browseUrl == null || browseUrl == ""){

2多邊形其中一個包圍另一個如何將中間的環帶區域塗成紅色

eat gin ner 中間 clr 2個 com combiner diff var a, b, c: HRGN; hbr: HBRUSH; begin // 2個多邊形,其中一個包圍另一個,如何將中間的環帶區域塗成紅色 hbr :

一個類有兩方法其中一個是同步的一個是非同步的; 現在又兩執行緒A和B請問:當執行緒A訪問此類的同步方法時執行緒B是否能訪問此類的非同步方法?

一個類有兩個方法,其中一個是同步的,另一個是非同步的;現在又兩個執行緒A和B,請問:當執行緒A訪問此類的同步方法時,執行緒B是否能訪問此類的非同步方法? 答案:可以 驗證 package com.my.test2; public class ClassA { public syn

spring mvc bean一個bean物件的資料繫結

一、前臺傳遞不同類不同物件 1、屬性名不同,可直接封裝進controller方法的物件引數(經驗證) 2、屬性名有重複,可在重複的類中設定一個值型別,後臺再去將值型別值賦值給例項變數(經驗證) 二、同一類多個物件集合 方法1、Json方式 方法2、新建一個類,該

ueditor百度富文字編輯器linux報錯: class path resource [config.json] cannot be resolved to absolute file path because it does not reside in the file system

具體報錯資訊如下 java.io.FileNotFoundException: class path resource [config.json] cannot be resolved to absolute file path because it does not reside in the fi

XAMPP啟動apachemysql報錯:This may be due to a blocked port, missing dependencies...

最近打算學習後臺開發,在網上找到一個後臺軟體包:XAMPP。 這玩意兒集成了PHP/mysql/tomcat等後臺軟體,有需要的去下面的地址下載吧: 安裝教程:https://jingyan.baidu.com/article/27fa7326abf2cd46f827

IDEA 匯入ModuleModule在同一個Project 顯示

       使用IDEA 過程中遇到的問題,我想一一記錄下來並希望對後面使用IDEA時遇此問題的人到有所幫助。       1、開啟IDEA , 點選右上角  File  --->   Project Structure (快捷鍵:Ctrl + Alt + Shi

tomcatweb應用使用相同的log4j的jar如何避免配置檔案發生衝突

我們在開發的時候通常會遇到再同一個伺服器下開發多個應用的情況,在公共jar包統一載入的情況下,如果log4j.properties配置不當,經常會發生多個應用的log日誌都列印到一個檔案裡了,如果配置檔案配置的是輸出所有log列印,那麼web應用的載入順序就是導致這個問題的

RecketMQ-同一個groupTopic訊息能傳送到Topic中但無法被監聽到

問題描述:現有多個應用,傳送和監聽訊息使用的GROUP為同一個,在該GROUP下面有多個TOPIC,往其中一個TOPIC傳送訊息

iOS 同一個項目創建target打包不同版本的項目

href code 第三方庫 選擇 設置 OS 但是 一份 沒有 創建新的target有兩種: 第一種:通過新建target(File ——> New——>Target) 1、Xcode創建新項目TargetDemo: 2、創建新的target:File —

入坑兩java.lang的Thread類

java程序 edm r+ 阻塞 https color dex prime 好的 Thread類API中的英文描述: file:///D:/Java/JDK8/Docs/docs/api/index.html 英語不好,大致的意思是: 線程是程序執行時的線程,java虛