我的android项目中有两个模块,app模块和lib模块。
无论这两个模块需要孝允的DI,所以我呼吁startKoin在MyApplication类应用模块,并IninKointContentProvider在LIB模块如下。
// app module
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
startKoin(this, modules1)
}
}
// lib module
class InitKoinContentProvider : ContentProvider() {
override fun onCreate(): Boolean {
startKoin(context.applicationContext, modules2)
return true
}
}
Run Code Online (Sandbox Code Playgroud)
然后应用程序崩溃并显示此消息
Caused by: org.koin.error.BeanOverrideException: Try to override definition with Single [class='android.content.Context'], but override is not allowed. Use 'override' option in your definition or module.
Run Code Online (Sandbox Code Playgroud)
我猜startKoin只能叫一次。
我找到的解决方案是合并两个 koin 模块然后调用startKoinin MyApplication,但我不喜欢它。库模块可以通过不使用科因,在这种情况下,其他的Android项目导入,我想呼吁startKoin的 …
我通过单击 android studio 上的绿色箭头来构建并运行我的项目,我的应用程序应该自动启动,但它刚刚安装然后什么也没发生。
我已经尝试重新安装 android studio 并创建一个新项目,但它仍然没有修复。
这是我的运行/调试配置(只是默认设置)。
这是 Android 清单
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
我发现错误信息如下,为什么会断开连接?
04/20 16:37:14: Launching app
$ adb install-multiple -r -t [my project path]\app\build\intermediates\split-apk\debug\slices\slice_2.apk [my project path]\app\build\intermediates\split-apk\debug\slices\slice_8.apk [my project path]\app\build\intermediates\split-apk\debug\slices\slice_7.apk [my project path]\app\build\intermediates\resources\instant-run\debug\resources-debug.apk [my project path]\app\build\intermediates\split-apk\debug\slices\slice_9.apk [my project path]\app\build\intermediates\split-apk\debug\slices\slice_5.apk [my project path]\app\build\intermediates\split-apk\debug\dep\dependencies.apk [my project path]\app\build\intermediates\split-apk\debug\slices\slice_6.apk [my project path]\app\build\intermediates\split-apk\debug\slices\slice_0.apk [my project path]\app\build\intermediates\split-apk\debug\slices\slice_1.apk [my project path]\app\build\intermediates\split-apk\debug\slices\slice_4.apk [my project path]\app\build\intermediates\split-apk\debug\slices\slice_3.apk [my project path]\app\build\intermediates\instant-run-apk\debug\app-debug.apk
Device emulator-5556disconnected, …Run Code Online (Sandbox Code Playgroud) 我知道如何测试是否在以下内容中设置了错误文本EditText:
editText.check(matches(hasErrorText("")));
Run Code Online (Sandbox Code Playgroud)
现在我想测试一个EditText没有错误文本集.我试过这个,但它不起作用.
editText.check((matches(not(hasErrorText("")))));
Run Code Online (Sandbox Code Playgroud)
有谁知道这是怎么做到的吗?谢谢!