2017-06-22 52 views
2

我有一個基本功能模塊和一個功能模塊(您可以稱之爲「小孩」)。該基地功能模塊包含的strings.xml文件的資產:Android即時應用 - 無法從基本功能中找到符號資產

<resources> 
    <string name="app_string">Test String</string> 
</resources> 

我試圖在「孩子」功能的活動來引用該字符串資源,如下圖所示:

int resId = R.string.app_string; 

Android Studio中出現尊重這個參考資料,當我點擊它時,甚至會指引我參考app_string資源。然而,在編譯過程中,我遇到了以下錯誤消息:

Error:(13, 25) error: cannot find symbol variable app_string 

搖籃文件爲我的「孩子」功能,構建具有依賴太:

dependencies { 
    ... 
    implementation project(':base') 
} 

我也試過compile project(':base'),但沒有成功。

有什麼明目張膽的,我失蹤了?

回答

6

您的基本和子模塊有不同的軟件包名稱 - 假設它們是com.example.basecom.example.child。每個包含它自己的一套資源,他們的標識符將在單獨的R程序包收集:

  • com.example.base.R
  • com.example.child.R

因爲你想訪問基本模塊定義的資源,您需要使用變量的完全限定名稱com.example.base.R.string.app_string來引用它。

+0

我嘗試過,但不幸的是我得到'無法解析符號'R''。如果我要使用你列出的軟件包,我會嘗試: 'int resId = com.example.base.R.string.app_string'就像你說的。 –

+0

哦,這很有趣,我用'com.example.R.string.app_string'解決了它(注意,我忽略了那個路徑中的'base'目錄) –

相關問題