簡體   English   中英

為什么庫模塊android.support.test在添加依賴項中不可見

[英]Why is library module android.support.test not visible in add dependency

我正在為Android Studio中的項目添加Espresso。 我已經安裝了支持存儲庫,實際上已經使用了它的部分。 然后我根據安裝說明將這些依賴項添加到app/build.gradle

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'

在編寫我的測試時,auto complete會識別工件的存在。 但是當我跑步時我得到這個錯誤:

error: package android.support.test does not exist
error: package org.junit does not exist

以及這兩個的其他一些子包。

所以我從build.gradle中刪除了上面兩行,然后嘗試在GUI項目結構/ modules / dependencies中添加

既沒有'com.android.support.test.espresso:espresso-core:2.0'也沒有'com.android.support.test:testing-support-lib:0.1'作為可供選擇的選項。 但是,在我的文件系統中有<sdk>\\extras\\android\\m2repository\\com\\android\\support\\test\\espresso\\espresso-core\\2.0\\以及包括espresso-core-2.0.aar在內的全套文件我能夠通過winzip在其中打開和導航。 在文件系統中,它看起來與通過SDK Manager和Support Repository安裝的其他庫沒什么區別。

android studio為什么不識別這個庫?

非常感謝您的幫助,我找不到任何其他人似乎遇到了這個問題。 這是我能找到的最接近的: 為什么編譯時庫模塊中的包不存在,即使Android Studio在代碼中沒有顯示錯誤?

我嘗試過兩次重新安裝支持存儲庫。

我有同樣的問題,我發現androidTestCompile的依賴關系只在調試版本變體中默認可見。

您可以通過將其添加到build.gradle來更改要測試的構建變體:

android {
    ...
    testBuildType "staging"
}

“staging”只是一個例子,你應該用你的一個構建變體替換它。

請記住,只測試了一種變體。

有關詳情,請訪問https://code.google.com/p/android/issues/detail?id=98326

我也有這個問題,並且我在Google推薦的src / androidTests下有我的android測試用例,但是這會導致build.gradle出現問題:

sourceSets {
    main {
        java.srcDirs = ['src']
    }
}

以上是它試圖在正常的調試編譯目標中編譯我的所有測試用例,其中不包括espresso和其他依賴項,因為它們列在androidTestCompile下。

最后,我通過從編譯中排除androidTest子目錄並將androidTest的根目錄設置到適當的目錄來修復此問題。

sourceSets {
    main {
        java.srcDirs = ['src']
        java.excludes = ['androidTest/**']
    }
    androidTest.setRoot('src/androidTest')
}

有2種不同的測試依賴項配置:

  • testCompile - 由單元測試套件使用(位於src/test文件夾中,由./gradlew test調用)
  • androidTestCompile - 由集成測試套件使用(位於src/androidTest文件夾,由./gradlew connectedAndroidTest調用)。

我懷疑你的測試代碼是在錯誤的測試套件位置

在你的情況下你的測試代碼應該進入src/androidTest文件夾,測試套件應該通過運行./gradlew connectedAndroidTest來執行

我遇到了同樣的問題,它是通過從Android Studio的Build選項卡中點擊Clean Project來解決的。

點擊清潔項目后,觀看Gradle控制台是否存在潛在錯誤,如果成功完成清理,只需進入任何一個測試類並輸入“Espresso”,智能代碼完成應提供建議。 在此之后,當您使用Espresso時,所有內容都應自動導入。

希望這可以幫助!

我的解決方案更簡單,更簡單,我只是去Android Studio File>Invalidate Caches/Restart並且它工作正常,似乎android工作室保留了一些不會用Rebuild/Clean緩存。

我將我的一個應用程序轉發到一個新的可視化范例時遇到了這個問題,並發現我的應用程序級build.gradle缺少以下內容:

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})

1.單擊工具欄中“運行”按鈕旁邊的下拉菜單。

2.單擊“編輯配置”

3.現在刪除除app(在Android App中)和默認值之外的所有其他內容。

這對我有用。 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM