无法在Kotlin中进行单元测试(ExecutionException,Aapt2Exception)

Obl*_*ate 6 testing android unit-testing kotlin android-gradle-plugin

一个简单的测试......

import org.junit.Test

class KotlinUnitTest {

    @Test
    fun test() {
        assert(true)
    }
}
Run Code Online (Sandbox Code Playgroud)

...导致以下结果......

Information:Gradle: Executing tasks: [:app:assembleDebug, :app:assembleDebugUnitTest]
Information:Kotlin: Kotlin JPS plugin is disabled
Information:Module "app" was fully rebuilt due to project configuration/dependencies changes
Information:06/12/2017 5:08 PM - Compilation completed with 3 errors and 0 warnings in 19s 962ms
Error:Gradle: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Gradle: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Gradle: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Run Code Online (Sandbox Code Playgroud)

每次运行测试时,添加android.enableAapt2=falsegradle.properties(或者gradle-wrapper.properties)都会使Android Studio无限期地停止.

这很奇怪,因为我能......

  • 运行我的生产应用程序(填充Kotlin文件)
  • Java中的单元测试

但是,无论出于何种原因,我无法在Kotlin进行测试

小智 2

我遇到了同样的问题。进行一个简单的测试:

@RunWith(RobolectricTestRunner::class)
@Config(constants = BuildConfig::class)
class MainActivityTest {
    private lateinit var activityController: ActivityController<MainActivity>

    @Before
    @Throws(Exception::class)
    fun setUp() {
        activityController = Robolectric.buildActivity(MainActivity::class.java)

        activityController.create().start().resume()

    }

    @Test
    @Throws(Exception::class)
    fun testNotBeNull() {
        assertNotNull(activityController.get())
    }

}
Run Code Online (Sandbox Code Playgroud)

更新到最新的 Kotlin 版本到 1.1.60 和 Gradle 到 3.0.1 解决它。

  • 错误:Gradle:无法创建目录“D:\...”。错误:Gradle:处理清单失败。错误:Gradle:java.util.concurrent.ExecutionException:java.util.concurrent.ExecutionException:com.android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以获取详细信息错误:Gradle:java.util.concurrent.ExecutionException:com .android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以了解详细信息错误:Gradle:com.android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以了解详细信息错误:Gradle:任务':app:processInstallStagingDebugResources执行失败'。&gt; 执行aapt失败 (2认同)