当我尝试构建我的项目时,我遇到了这样一个错误:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:dataBindingGenBaseClassesDebug'.
> Parameter 'directory' is not a directory
Run Code Online (Sandbox Code Playgroud) android android-build android-studio build.gradle android-gradle-plugin
我在全屏幕上使用Android Studio上的Android Studio(最大化).启动Android Emulator时,其窗口显示在常规桌面上.这需要从一个窗口切换到另一个窗口.我希望能够同时查看两个窗口,而无需在Android Studio中退出全屏模式.
有没有办法将Android模拟器窗口移动到我的Android Studio窗口内(或顶部)?
我想无限重复一个T元素Sequence<T>.使用kotlin.collections.asSequence无法完成此操作.例如:
val intArray = intArrayOf(1, 2, 3)
val finiteIntSequence = intArray.asSequence()
val many = 10
finiteIntSequence.take(many).forEach(::print)
// 123
Run Code Online (Sandbox Code Playgroud)
这不是我想要的.我期望某种kotlin.collections.repeat功能存在,但没有,所以我自己实现了一个(例如为此IntArray):
var i = 0
val infiniteIntSequence = generateSequence { intArray[i++ % intArray.size] }
infiniteIntSequence.take(many).forEach(::print)
// 1231231231
Run Code Online (Sandbox Code Playgroud)
这是非常必要的,所以我觉得必须有一个更实用,更简洁的方法来做到这一点.如果它存在,Kotlin的标准方式是重复集合/数组a(n)(in)有限次数是什么?
当IntelliJ IDEA检测到我将一段复制的Java代码粘贴到Kotlin文件中时,它允许我将粘贴的Java转换为Kotlin.该对话框包含"下次不再询问复选框".我选中了此框并选择了"是",但现在我要撤消我的默认选择.我该怎么做呢?
我在IntelliJ IDEA的首选项中查找并搜索过,但没有找到相应的复选框.它实际上是在设置中,还是我可以以某种方式重置默认复选框选择?
这是我的 MWE 测试类,它依赖于 AndroidX、JUnit 4 和 MockK 1.9:
class ViewModelOnClearedTest {
@Test
fun `MyViewModel#onCleared calls Object#function`() = mockkObject(Object) {
MyViewModel::class.members
.single { it.name == "onCleared" }
.apply { isAccessible = true }
.call(MyViewModel())
verify { Object.function() }
}
}
class MyViewModel : ViewModel() {
override fun onCleared() = Object.function()
}
object Object {
fun function() {}
}
Run Code Online (Sandbox Code Playgroud)
注意:该方法在超类中受保护ViewModel。
我想验证MyViewModel#onCleared调用Object#function. 上面的代码通过反射实现了这一点。我的问题是:我可以以某种方式运行或模拟 Android 系统以便onCleared调用该方法,这样我就不需要反射吗?
来自onClearedJavaDoc:
当这个 ViewModel 不再使用时会调用这个方法,并且会被销毁。
那么,换句话说,我如何创建这种情况,以便我知道onCleared被调用并且我可以验证它的行为?
android unit-testing android-testing android-viewmodel android-architecture-components
我在MATLAB R2014b上,有一个问题,我将通过以下示例说明.
MWE可以如下制作或在此处下载为.zip文件.
+test在路径上创建一个包文件夹,其中包含四个函数文件:
+test
a.m
b.m
c.m
d.m
Run Code Online (Sandbox Code Playgroud)
内容a.m:
function a
disp 'Hello World!'
Run Code Online (Sandbox Code Playgroud)
内容b.m:
function b
a
Run Code Online (Sandbox Code Playgroud)
如果从命令行运行b,则必须先导入test包(import test.*)或运行test.b.
运行b将导致错误,因为函数的范围b不包含函数a.我们必须先导入它才能使用它.为此,我创造了c.m:
function c
import test.*
a
Run Code Online (Sandbox Code Playgroud)
现在运行c正常.
现在我的问题.如果我c.m改为(保存在d.m):
function d
a
import test.*
Run Code Online (Sandbox Code Playgroud)
即在调用package函数之后发出import命令a.运行d仍然可以正常工作,就好像导入命令的位置d.m无关紧要.导入似乎在调用函数之前发生a,这在d.m导入之前的行上发生.
为什么会这样呢?这是预期的行为,它的用途是什么?MATLAB如何以及以何种顺序读取.m文件并对其进行处理?更偏离主题,但总的来说:与MATLAB相比,如何导入以不同语言处理的包,命令的顺序是否重要?
我基于注释的先发制人的结论:最好只在MATLAB代码开头或附近使用导入函数.这清楚地显示了导入的内容在整个元素中可用(例如,功能).它还可以防止错误的假设,即在导入之前,内容尚未可用或引用具有相同名称的其他内容.
在IntelliJ IDEA(2017.1.2)中设置Java项目的过程中的某个位置,显示了一个.idea/名为的目录kotlinc.xml.我对Kotlin什么都不做,但文件里面有内容:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinCommonCompilerArguments">
<option name="languageVersion" value="1.1" />
<option name="apiVersion" value="1.1" />
</component>
</project>
Run Code Online (Sandbox Code Playgroud)
这似乎是一些通用的配置,但我可以想象一些特定于项目的(而不仅仅是我的本地IDEA特定的)Kotlin配置存储在那里.因此,一般情况下,在版本控制下共享项目(例如Git)时,是否可以忽略此文件,即不提交它并在线发布它?还是应该被忽略?
似乎我无法在 IntelliJ IDEA (2018.3) 和 Android studio (3.2.1) 中为 Kotlin 添加自定义后缀补全。如果我去偏好 | 编辑 | 一般 | Postfix Completion 并单击添加按钮,Kotlin 没有选项(请参见下面的屏幕截图)。是否可以添加新的后缀补全?
我想添加一个.with后缀补全,这样就x.with可以扩展到
with(x) {
// The caret should go here
}
Run Code Online (Sandbox Code Playgroud)
旁注:我认为很遗憾没有with开箱即用的后缀完成。
IntelliJ IDEA(2018.3)和Android Studio(3.2.1)截图:

Google Inbox如何显示小吃栏(覆盖,分层)键盘?这不是默认行为,我已经使用基本协调器布局,键盘打开和快餐栏进行了测试:默认行为是显示键盘后面的零食栏.对于这个问题有很多答案:'如何在键盘上方显示小吃栏',但我还没有找到如何重现谷歌自己的收件箱应用程序的零食栏行为.
你能告诉我如何实现这个目标吗?
android android-layout android-activity snackbar android-snackbar
这两种方法的文档相同:
扩展此类时,是否应该覆盖任何一个或两个或特定一个,并且您想编辑绘制子级的方式?有什么不同?不同用例的/示例是什么?区别是否类似于这些方法之间的区别?
android ×4
kotlin ×4
java ×2
android-architecture-components ×1
build.gradle ×1
collections ×1
import ×1
macos ×1
matlab ×1
package ×1
packages ×1
sequence ×1
snackbar ×1
unit-testing ×1