Kotlin REPL与Android类取消订阅!预计起飞时间

Kotlin REPL与Android类取消订阅!预计起飞时间,android,android-studio,intellij-idea,kotlin,read-eval-print-loop,Android,Android Studio,Intellij Idea,Kotlin,Read Eval Print Loop,我喜欢Idea/Android Studio中的Kotlin REPL,但作为一名Android开发人员,我经常遇到Stub!这里有问题。在编写单元测试时,我用它来解决这个问题。有没有办法使用与Kotlin REPL插件相同的方法 [所有android(和java.lang.*)类都是android项目中的占位符。这是因为android不使用标准java类文件来存储编译后的代码,并且无法在计算机上直接运行此代码 您不能将REPL与android类一起使用,它们将只存在于实际的设备或模拟器上 如果

我喜欢Idea/Android Studio中的Kotlin REPL,但作为一名Android开发人员,我经常遇到Stub!这里有问题。在编写单元测试时,我用它来解决这个问题。有没有办法使用与Kotlin REPL插件相同的方法

[

所有android(和java.lang.*)类都是android项目中的占位符。这是因为android不使用标准java类文件来存储编译后的代码,并且无法在计算机上直接运行此代码

您不能将REPL与android类一起使用,它们将只存在于实际的设备或模拟器上

如果您不关心正确性,那么您可以使用Robolectric的Android实现,将其作为依赖项添加到项目中。 为了确保它不会与实际实现发生冲突,您可能应该使用一个专用于REPL的单独模块来实现这一点


Unmack使用的Robolectic的依赖关系是:
org.roblectric:android all:7.1.0_r7-roblectric-0
问题是Kotlin REPL-in IDEA是由Kotlin IDEA插件提供的,它本身没有android的概念,只是查看类路径中的内容,在本例中是包含st的
android.jar
瑞银抛出了你提到的异常

在测试中使用unck甚至集成的Android支持来删除存根中的异常(请参见“模拟Android依赖项”末尾的内容)是行不通的,因为这只会影响Gradle构建


我能想到的唯一解决方案是在上打开一个问题,或者在上挖掘并发送一个拉取请求。

您查看过Unmack吗?这里不能使用相同方法的原因是什么-您也不需要模拟器/设备它看起来像是插件使用了robolectric的()Android的实现。之所以不使用它,是因为它是非官方的,而且它的行为也不能保证与真正的Android设备匹配。我不关心这里的保证——它在单元测试中运行得非常好——只想在repl中使用同样的功能。感谢提供的信息——特别是指向repl插件src的链接——就像appendinx-Romain Guy一样在聊天中说可以使用layoutlib实现-还不确定我是否投入时间-