我想使用mapbox-android SDK在Android(Kotlin)上制作一个导航应用程序。 我需要创建一个具有特定航点的航线,并且想要知道我何时靠近其中一个航点(例如前200米)。 我已经设法使用NavigationRoute对象显示带有航点的地图,并使用NavigationLauncher对象启动逐向导航。 不过,我不知道如何知道我什么时候靠近航点。 我已经阅读了关于里程碑事件监听器(步骤或路由),RouteProgress(腿或路由)的事情,但是我不知道这是否是正确的方法。 我试图用STEP_DISTANCE_REMAINING_METERS声明一个里程碑,并添加一个MilestoneEventListener,但是在我的日志中没有任何东西激活。 就像我说的,我甚至不知道这是否是正确的方法。 val milestone = RouteMilestone.Builder() .setIdentifier(100) .setTrigger(Trigger.all( Trigger.lt(TriggerProperty.STEP_DISTANCE_REMAINING_METERS, 200) )) .build() navigation = MapboxNavigation(this@MainActivity, Mapbox.getAccessToken()) navigation.addMilestone(milestone) navigation.addMilestoneEventListener { _, _, milestone -> Log.d(TAG, “milestone triggered: ” + milestone.instruction) } navigationMapRoute = NavigationMapRoute(navigation, mapView, map, R.style.NavigationMapRoute) navigationMapRoute!!.addRoute(currentRoute) 我正在使用这些版本的mapbox SDK mapbox-Android的SDK 5.3.2 mapboxfunction的Android导航:0.9.0 mapbox-Android的导航界面:0.9.0
我的代码有奇怪的问题,我无法解释发生的任何事情。 它是在棉花糖崩溃,但没有牛轧糖,这使得这更离奇。 我可以指向一个错误发生的地方,但是错误本身并不清楚。 我不知道什么是崩溃,以及如何防止它。 以下是详细信息: 当我尝试打电话给服务器时发生崩溃。 为此,我使用RxJava旁边的RxJava ,我在Kotlin中做这个。 这是我的代码: fun login(username: String, password: String, callback: Login.OnLoginListener) { RestClient.getInstance().service .loginUser( // ( if (success.status) callback.onLoginSuccess() else callback.onLoginError() ) }, { error -> GenericErrorHandler.handleError(error, callback.retrieveContext()) } ) } 这里是logcat输出: java.lang.IncompatibleClassChangeError: Class ‘java.lang.VirtualMachineError’ does not implement interface ‘java.lang.CharSequence’ in call to ‘java.lang.String java.lang.CharSequence.toString()’ (declaration of ‘java.lang.Throwable’ appears in […]
尝试在Retrofit服务中使用数据类作为结果types时收到以下错误。 11-15 11:35:38.345 14693-14693/com.example.app E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.app, PID: 14693 kotlin.reflect.jvm.internal.KotlinReflectionInternalError: Incorrect resolution sequence for Java constructor public constructor AuthenticationResponse() defined in com.example.app.data.auth.AuthenticationResponse[JavaClassConstructorDescriptor@6d57dc3] (kotlin.reflect.jvm.internal.impl.load.java.structure.reflect.ReflectJavaClass: class com.example.app.data.auth.AuthenticationResponse) at kotlin.reflect.jvm.internal.RuntimeTypeMapper.mapSignature(RuntimeTypeMapper.kt:202) at kotlin.reflect.jvm.internal.KFunctionImpl.(KFunctionImpl.kt:46) at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:87) at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:39) at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.invoke(ReflectProperties.java:93) at kotlin.reflect.jvm.internal.ReflectProperties$Val.getValue(ReflectProperties.java:32) at kotlin.reflect.jvm.internal.KClassImpl$Data.getConstructors(Unknown Source:7) at kotlin.reflect.jvm.internal.KClassImpl.getConstructors(KClassImpl.kt:192) at kotlin.reflect.full.KClasses.getPrimaryConstructor(KClasses.kt:40) at com.squareup.moshi.KotlinJsonAdapterFactory.create(KotlinJsonAdapter.kt:160) at com.squareup.moshi.Moshi.adapter(Moshi.java:100) at retrofit2.converter.moshi.MoshiConverterFactory.responseBodyConverter(MoshiConverterFactory.java:90) at retrofit2.Retrofit.nextResponseBodyConverter(Retrofit.java:328) […]
在Kotlin的对象类中有一个属性,它有一个上下文吗? 在Android中,将上下文相关的对象放在静态字段中是一个不好的做法。 Android工作室甚至突出显示它,并给出了一个警告,不像Kotlin没有警告。 示例对象: object Example { lateinit var context: Context fun doStuff(){ //..work with context } }
在下面的Kotlin / JVM程序中, System.exit(-1)用一个错误退出代码停止执行程序: fun main(args: Array) { if (args.size < 2) { println("too few args!") System.exit(-1) } println("Hello, ${args[1]} from ${args[0]}") } Kotlin / Native不能访问任何Java类,包括System 。 那么对于一个Kotlin / Native程序来说,用一个错误代码来停止程序的执行是什么呢?
所以我正在从RxJava移植一个示例应用程序到Kotlin / Anko Corountines,我想知道如果我正在做它最好的(第一)方法: fun getPopulationList() { val ref = asReference() async(UI) { try { ref().setCurrentState(ViewState.State.LOADING) val background = bg { repository.populationResponse().execute().body() } ref().let { it.response = background.await() it.mvpView?.onGetData(it.response) it.setCurrentState(ViewState.State.FINISH) } } catch (e: Exception) { e.printStackTrace() ref().mvpView?.onError(e) } } } 我正在使用MVP架构,其中我的Presenter基类有一个CompositeSubscription和在onDestroy的片段或活动方法简单退订,并清除CompositeSubscription对象。 但是我想知道如果从asReference()函数是相同的,没有必要保存一个Deferred的列表,然后迭代它并逐个取消。 顺便说一句,如果我添加一个Thread.sleep(5000)来模拟一个大事务,并销毁碎片,我可以在logcat中看到的HTTP响应即使片段不可见/销毁,而RxJava没有发生,所以我想我我没有正确使用。
我正在尝试在kotlin中使用AndroidAnnotations @SharefPref,但Iget下面的错误 org.androidannotations.annotations.sharedpreferences.Pref can only be used on an element that extends org.androidannotations.api.sharedpreferences.SharedPreferencesHelper 我究竟做错了什么? //Interface @SharedPref(SharedPref.Scope.APPLICATION_DEFAULT) open interface MyPreferences { @DefaultInt(-1) fun someIntValue():Int } //Fragment @Pref lateinit open var sharedPref:CongressPreferences_ //usage within fragment val get: Int = sharedPref.selectedEventId().get()
我走过https://kotlinlang.org/docs/reference,但我找不到保留关键字,在Kotlin中使用。 Kotlin有多少个关键字? 只要我们知道Java有像这样的自己的关键字列表:
我正在使用Gradle Dokka插件0.9.16-eap-1生成一些Kotlin代码的文档。 我是一个没有破窗户types的人,因此有点沮丧,插件生成吨的消息,我没有明确记录一个重写的方法,在基类中充分记录的类的消息, 例如 : package com.foo /** * A silly class to demonstrate silliness. */ class Bar : java.io.InputStream() { override fun read() = -1 override fun toString() = “BAZ!” } 对于这个class级,Dokka谴责: No documentation for com.foo.Bar$read() (Bar.kt:6) No documentation for com.foo.Bar$toString() (Bar.kt:7) 这有点乏味,因为我不想用复制粘贴文档冗余地冗余文档。 看看Dokka README.md ,我看到的唯一相关配置选项是: dokka { … // Emit warnings about not […]
我想为Intellij IDEA编写一个插件来修改Java和Kotlin代码。 我使用的方法 PsiClass.getMethods() 以获得Java和Kotlin类的所有方法。 到目前为止好,那么我使用类似的方法 PsiClass.add(), PsiClass.addAfter(), PsiClass.addBefore() 一旦它们被调用到Java文件上,它们都可以正常工作,但是却开始抛出一个exception IncorrectOperationException 一旦我把他们叫做Kotlin课堂。 我很感激任何提示,我可以修改Kotlin和Java类(最好使用相同的方法)。