在我们的代码中,我们使用外部 SDK 来登录用户 (Auth0)。此 SDK 使用意图打开 WebView ACTION_VIEW。
我试图重写我们已有的一些自动化测试(在此切换之前我们使用本机登录)。WebView 正确打开,但是当我尝试使用androidx.test.espresso:espresso-web代码与其交互时onWebView().forceJavascriptEnabled()
,出现以下错误:
androidx.test.espresso.NoActivityResumedException: No activities in stage RESUMED. Did you forget to launch the activity. (test.getActivity() or similar)?
at dalvik.system.VMStack.getThreadStackTrace(Native Method)
at java.lang.Thread.getStackTrace(Thread.java:1841)
at androidx.test.espresso.base.EspressoExceptionHandler.handleSafely(EspressoExceptionHandler.java:2)
at androidx.test.espresso.base.EspressoExceptionHandler.handleSafely(EspressoExceptionHandler.java:1)
at androidx.test.espresso.base.DefaultFailureHandler$TypedFailureHandler.handle(DefaultFailureHandler.java:4)
at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:5)
at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:8)
at androidx.test.espresso.ViewInteraction.desugaredPerform(ViewInteraction.java:11)
at androidx.test.espresso.ViewInteraction.perform(ViewInteraction.java:8)
at androidx.test.espresso.web.sugar.Web$WebInteraction.forceJavascriptEnabled(Web.java:1)
Run Code Online (Sandbox Code Playgroud)
相反,如果我不使用forceJavascriptEnabled(),并直接尝试使用 访问 WebView onWebView().withElement(),则会收到错误:
androidx.test.espresso.NoMatchingViewException: No views in hierarchy found matching: an instance of android.webkit.WebView and webView.getSettings().getJavaScriptEnabled() is <true>
View Hierarchy:
+>DecorView{id=-1, visibility=VISIBLE, width=1080, height=2400, …Run Code Online (Sandbox Code Playgroud) 我了解了Xcode工作区。我知道如何共享静态库,但是我想在工作区中的两个xcode项目之间共享文件,并且可以一次运行多个目标吗?能否向我提供如何执行此操作的信息。
提前致谢
通过使用以下方法,我获得了sim one的信息
TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
// Get the SIM country ISO code
String simCountry = telephonyManager.getSimCountryIso();
Log.e("Show:", simCountry);
// Get the operator code of the active SIM (MCC + MNC)
String simOperatorCode = telephonyManager.getSimOperator();
Log.e("Show:", simOperatorCode);
// Get the name of the SIM operator
String simOperatorName = telephonyManager.getSimOperatorName();
Log.e("Show:", simOperatorName);
// Get the SIM’s serial number
String simSerial = telephonyManager.getSimSerialNumber();
Log.e("Show:", simSerial);
// Get the phone number
String mPhoneNumber = telephonyManager.getLine1Number();
Log.e("Show:", mPhoneNumber);
Run Code Online (Sandbox Code Playgroud)
如何获取双卡手机的第二个SIM卡的信息?
// Get the phone …Run Code Online (Sandbox Code Playgroud) 这就是我要提供的方式ViewModelFactory:
@Suppress("UNCHECKED_CAST")
@Singleton
class ViewModelFactory @Inject constructor(
private val viewModels: MutableMap<Class<out ViewModel>, Provider<ViewModel>>
) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T = viewModels[modelClass]?.get() as T
}
@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)
@kotlin.annotation.Retention(AnnotationRetention.RUNTIME)
@MapKey
annotation class ViewModelKey(val value: KClass<out ViewModel>)
Run Code Online (Sandbox Code Playgroud)
这就是我绑定的方式ViewModelFactory:
@Suppress("unused")
@Module
abstract class ViewModelModule {
@Binds
internal abstract fun bindViewModelFactory(factory: ViewModelFactory): ViewModelProvider.Factory
@Binds
@IntoMap
@ViewModelKey(MainViewModel::class)
internal abstract fun mainViewModel(viewModel: MainViewModel): ViewModel
}
Run Code Online (Sandbox Code Playgroud)
在构建期间收到以下错误:
di/Injector.java:9: error: [Dagger/MissingBinding] java.util.Map<java.lang.Class<? extends androidx.lifecycle.ViewModel>,javax.inject.Provider<androidx.lifecycle.ViewModel>> cannot be provided without …Run Code Online (Sandbox Code Playgroud) android ×3
auth0 ×1
dagger ×1
dagger-2 ×1
dependencies ×1
dual-sim ×1
gui-testing ×1
ios ×1
ios-targets ×1
iphone ×1
kotlin ×1
webview ×1
xcode ×1