3 回答

TA貢獻1765條經驗 獲得超5個贊
在 Android Studio 中運行 Robolectric 測試的唯一解決方法是更改測試任務的 JRE。
選擇IDE菜單Run -> Edit Configuration,然后將圖中的選項更改為JDK9的位置:

TA貢獻1871條經驗 獲得超8個贊
作為臨時解決方法,可以在以前的版本上運行測試
目前(2020 年 4 月 27 日)您將無法針對 SDK 29 運行 Robolectric,但這可能會在將來更新。目前,正如我之前的所有答案所指出的那樣,Android Studio 不支持 Java 9 或更高版本。
但是,如果您在這里運行 Robolectric 測試,您可以通過為您的類設置 Robolectric@Config
注釋來簡單地避免 SDK 29。Robolectric 將簡單地針對應用程序支持的所有 SDK 版本(29 除外)運行測試。
實施
設置要運行的maxSdk
和版本。minSdk
這可以基于應用程序的最小和最大 SDK 版本,或者設置為如下所示的一個版本,以便加快測試速度。
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.robolectric.annotation.Config
import org.junit.runner.RunWith
import android.os.Build
@RunWith(AndroidJUnit4::class)
@Config(maxSdk = Build.VERSION_CODES.P, minSdk = Build.VERSION_CODES.P) // Value of Build.VERSION_CODES.P is 28
class TestClass {
...
}
當然,這只是另一個“丑陋”的補丁,但它會讓您繼續(xù)前進,直到您能夠針對所有所需的 SDK(或至少 SDK 29 及以下版本)運行測試。

TA貢獻1789條經驗 獲得超10個贊
到目前為止,Android 不支持 Java 9。根據文檔,Android 支持所有 Java 7 功能和部分 Java 8 功能。
開發(fā) Android 應用程序時,可以選擇使用 Java 8 語言功能。您可以將項目的源和目標兼容性值設置為 Java 7,但仍然需要使用 JDK 8 進行編譯。
添加回答
舉報