2013-08-20 170 views
6

Android Studio無法編譯我的測試項目,因爲它無法解析資源。 我嘗試了gradle.build中res目錄的一些不同設置,但沒有任何工作。我在這裏錯過簡單的東西嗎?這是一個簡單的HelloWorld項目,沒有任何個人信息。Android Studio無法找到我的資源

我已經因爲它是由Android的工作室嚮導創建以下項目結構(最新版本0.2.5):

enter image description here

在我的AndroidManifest.xml有通常的應用程序名稱引用:@字符串/ app_name 該字符串在main/res/values/strings.xml中定義(在上面的屏幕截圖中選擇)。

我從IDE(Android Studio中)得到的錯誤是:

android-apt-compiler: [MyApplicationProject] C:\...\MyApplication\src\main\AndroidManifest.xml:6: error: 
Error: No resource found that matches the given name (at 'label' with value '@string/app_name'). 

我在命令行中獲得當我運行 「gradle這個任務」 的錯誤是:

A problem occurred configuring root project 'MyApplicationProject'. 
> Failed to notify project evaluation listener. 
    > Main Manifest missing from C:\...\MyApplicationProject\src\main\AndroidManifest.xml 
+0

檢查這個答案http://stackoverflow.com /問題/ 16682223 /如何-DO-結構-PRO ject-test-directory-in-android-studio – robotoaster

+0

謝謝,但是你確實想告訴我嗎?我已經知道這篇文章,但它專注於測試設置。需要測試文件夾以便識別我的res文件夾嗎? – muetzenflo

+0

您不必指定它們,因爲它們默認情況下被命名爲我的屏幕截圖。我所做的只是將testPackageName和testInstrumentationRunner添加到默認配置。另外我沒有使用IDE來運行測試,但gradle命令 – robotoaster

回答

4

如果您在當前的Android Studio版本中遇到了這個問題,或者達到了相同的程度(例如,我將圖片添加到了我的可繪製文件夾中,並且它們未被識別),您的問題可能就是我遇到的問題。

如果您在複製正在處理的項目後遇到此問題,則可能無法正確導入此新項目。

我犯了在IDE中複製和粘貼項目的錯誤,將其重命名(編輯清單),然後嘗試處理它。這將不起作用,因爲新項目仍在訪問原始的res文件夾。

當複製一個項目,以免毀了你原來的你應該:

  1. 轉到你的Android Studio項目文件夾(右鍵單擊在IDE當前項目,並選擇「顯示在資源管理器」 。
  2. 複製粘貼+在同一目錄下這個項目;因此重命名文件夾新版本的名稱
  3. 在IDE轉到文件>導入項目> ...並找到您的新項目的目錄
  4. (繼續在IDE中重命名項目。更改軟件包ge name在AndroidManifest.xml中)

這樣IDE爲它創建一個新項目,並且它訪問正確的res文件夾(不是原來的)。

雖然這可能不是解決您許多人閱讀這個問題;在發現複製項目的正確方法之前,我多次遇到了這個問題。

我希望這可以節省一些人一些時間。

+1

這只是我正在尋找的解決方案。 thx爲我節省了很多時間。 – Maverick1st

6

嘗試在defaultConfig下添加以下內容(在android {...}內)

sourceSets { 
    main { 
     manifest.srcFile 'AndroidManifest.xml' 
     java.srcDirs = ['src'] 
     resources.srcDirs = ['src'] 
     aidl.srcDirs = ['src'] 
     renderscript.srcDirs = ['src'] 
     res.srcDirs = ['res'] 
     assets.srcDirs = ['assets'] 
    } 
} 
+0

謝謝,我當時也試過。但這是Android Studio發行版中的一個錯誤。自0.5.6版本以來,它工作正常。 – muetzenflo

+0

@muetzenflo如果這是答案,你應該寫出來並將其標記爲答案。 – ThomasW

+0

你能告訴我在哪裏可以學習sourceSets包含的所有屬性嗎?在[gradle頁面](http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.SourceSet.html)我只能找到'java'和'resources'。 – CopperCash

1

雖然這是一個很老的帖子,但@ThomasW建議將其作爲正式答案:這是版本0.2.5中的一個錯誤 自從我使用Android Studio的新版本以來,我再也沒有這個問題了。

+3

你錯了 - 我在最新的Android工作室有這個問題... – Krystian

+0

嗯,這很奇怪。我每天都使用AS,自0.2.5以來從未出現過這個問題。但是,隨着新的0.8.1版本的發佈,內部項目管理/導入發生了很多變化。如果您找到更好的解決方案,只需在此處發佈,我會將其標記爲正確。也許嘗試清空緩存並重新啓動AS(可從文件菜單中找到) – muetzenflo

+0

我發現,在我的情況中出了什麼問題 - 我在RelativeLayout中有兩個視圖,第一個使用關係屬性和第二個(通過id) - AndroidStudio沒有解決此類視圖以進行預覽的問題(一切正常),但是Gradle沒有構建它。我不得不改變那些意見的順序,現在它工作正常。 – Krystian

0

我這個掙扎了一會兒,一直在AndroidStudio 創造新的Maven項目的問題終於什麼工作是以下(與Android Studio的測試1.0.1)

  • 上POM文件右鍵 - > Maven的 - >刪除項目(這裏如果它抱怨,一定要卸下項目的依賴)
  • 再次右鍵單擊POM - >的Maven - >導入項目