Tag: android

用KOTLIN android studio进行JUnit测试

我对android开发很陌生,最近做了我的第一个项目。 这只是一个加法,减法,乘法和除法的基本计算器。 现在,我正在考虑使用JUnit和KOTLIN进行单元测试。 我应该怎么做呢? 我一直在四处寻找,不知道。 计算器Java代码: package com.example.zhiwen.calculator; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity{ Button plus,minus,times,divide; TextView textview3; EditText first, second; double no1 = 0, no2 = 0; double answer = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); plus = […]

DbFlow Kotlin和List <String>类型转换器

DBFlow版本:4.0.4嗨,我与ListForm转换器与dbflow Android ORM和Kotlin。 我有这样的数据类定义: @Table(database = StopsDb::class) data class FavouriteStop( @PrimaryKey @Column var id: String = "", @Index @Column var name: String = "", @Column(typeConverter = StringListConverter::class) var directions: List<String> = listOf(), @Column(typeConverter = StringListConverter::class) var selectedDirections: List<String> = listOf() ) : BaseRXModel() 因为我不想创建一个单独的表来存储字符串我创建了一个列表类型转换器是这样的: class StringListConverter : TypeConverter<String, List<String>>() { val separator = "," override […]

与詹金斯建立时,没有发现Kotlin类

在我的机器上本地化我的应用程序成功建立和正常工作,点击打开Kotlin活动,如: galleryLayout.setOnClickListener(view -> startActivity(new Intent(PreferencesActivity.this, GalleryActivity.class))); 但是,在成功构建Jenkins CI之后,点击操作将导致应用程序崩溃: Fatal Exception: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/noodoe/sunray/settings/preferences/gallery/GalleryActivity; at com.noodoe.sunray.settings.preferences.PreferencesActivity.lambda$setupListener$9(PreferencesActivity.java:248) at com.noodoe.sunray.settings.preferences.PreferencesActivity.access$lambda$9(PreferencesActivity.java) at com.noodoe.sunray.settings.preferences.PreferencesActivity$$Lambda$10.onClick(Unknown Source) at android.view.View.performClick(View.java:5226) at android.view.View$PerformClick.run(View.java:21266) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:168) at android.app.ActivityThread.main(ActivityThread.java:5845) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) Caused by java.lang.ClassNotFoundException: Didn't find class "com.noodoe.sunray.settings.preferences.gallery.GalleryActivity" on path: DexPathList[[zip file "/data/app/com.noodoe.sunray.alpha-1/base.apk"],nativeLibraryDirectories=[/data/app/com.noodoe.sunray.alpha-1/lib/arm, /data/app/com.noodoe.sunray.alpha-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]] […]

Kotlin:如何从RxJava订阅者继承

我希望我的NewsListSubscriber继承自使用泛型类型的RxJava订阅服务器,但是当我调用UseCase execute方法时,出现“类型不匹配”错误。 我从Kotlin文档中多次阅读泛型页面,但找不到解决方案。 这是我的UseCase: abstract class UseCase(private val threadExecutor: IThreadExecutor, private val postExecutionThread: IPostExecutionThread) { private var subscription = Subscriptions.empty() fun execute(UseCaseSubscriber: rx.Subscriber<Any>) { subscription = buildUseCaseObservable() .subscribeOn(Schedulers.from(threadExecutor)) .observeOn(postExecutionThread.getScheduler()) .subscribe(UseCaseSubscriber) } protected abstract fun buildUseCaseObservable(): Observable<out Any> fun unsubscribe() { if (!subscription.isUnsubscribed) { subscription.unsubscribe() } } } 这就是我所说的: override fun loadNewsList() { getNewsListInteractor.execute(NewsListSubscriber()) } private […]

没办法编译我自己的kotlin库

随着谷歌I / O 2017年,我决定学习kotlin开发我自己的库在Android的kotlin。 这个库允许从OpenWeatherMap API获取信息。 项目链接: https : //github.com/sokarcreative/EasyOWM 有什么问题 ? 我只是不能编译我的图书馆。 我尝试了一切。 我已经编译了分叉的项目,它工作,但没有办法与我自己的图书馆。 我用这些gradlew脚本创建了一个新项目: – 项目gradle allprojects { repositories { … maven { url 'https://jitpack.io' } } } – 模块gradle dependencies { … compile 'com.github.sokarcreative:easyowm:master-SNAPSHOT' } 错误: Failed to resolve: com.github.sokarcreative:easyowm:master-SNAPSHOT 我知道这是一个反复出现的问题,但没有办法解决这个问题。 编辑:以防万一,图书馆工作。 这是我的银河选项卡S3: EasyOWM截图的结果

Instrumentation测试无法在包含Kotlin文件的Android库模块中运行

这基本上是在标题中,我不能在包含Kotlin类的Android库模块中运行任何检测测试。 这与测试是否依赖Kotlin类无关。 这里是我可以重现这个问题的最简单的步骤: 使用默认设置创建一个新的Android库项目 只要检查,运行示例仪表测试,运行良好 添加一个Kotlin类 运行示例测试,仍然运行良好 再次添加一个全新的默认设置的Android库模块 运行示例仪器测试,工作正常 添加一个Kotlin文件,只包含一个class Something 尝试再次运行检测测试,现在构建失败,并显示以下消息: Error:Execution failed for task ':mylibrary:transformClassesWithDexForDebugAndroidTest'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lco/zsmb/example/mylibrary/Something;

Kotlin原始字符串抛出空白错误

我正在用kotlin创建一个gradle插件,并且插入一些ascii艺术。 我没有试图逃避一大堆反斜杠,而是决定使用原始的字符串,但是现在我遇到奇怪的无名的错误,只要我的行包含2个竖线。 以下是一些示例代码: println(""" ] |___1 ] ||__2 ] |||_3 ] ||||4 """.trimMargin("]")) 这会导致我的消息日志中出现以下错误: Error:__2 Error:|_3 Error:||4 有谁知道为什么这个错误发生? 我已经覆盖了保证金字符,所以我不明白为什么竖线仍然影响原始字符串。 奇怪的是,它只发生在第二棒之后。 这是项目的一个纯粹的美容部分,所以如果我不得不删除它,这不是一个大问题。 任何见解都被赞赏! 编辑: 我已经重新启动我的电脑和IDE,现在我提供的示例字符串不会导致这些错误。 然而,我的ASCII字符串仍然这样做,我会提供一个错误的艺术片段。 我也使用kotlin 1.1.0,并试图降级到1.0.6,仍然看到错误。 新的示例代码: println(""" ] \ ^ /^ ] \ / \ // \ ] \ |\___/| / \// .\ ] \ /OO \__ / // | \ \ *—-* […]

如何在Kotlin中创建API请求?

我对Kotlin和API非常陌生,找不到使用此语言创建API请求的语法。 我正在创建网站的移动版本,所以我正在使用Android Studio为已建立的后端创建新的用户界面。 创建请求的步骤和语法是什么? 任何帮助深表谢意。

Kotlin注解处理会忽略具有相似名称的项目

我最近把我的大部分项目都转换成了kotlin。 现在我遇到了几个似乎与注释库有关的不寻常的错误。 不用说,它并没有在Java中发生。 我将描述这些案例 – 一个在匕首,另一个在Butterknife。 1.在具有相同名称的不同模型中使用2个@Provides方法时。 例如在具有“provideFooOrBar”方法的文件“FooProvider.kt”中 @Module class FooProvider(private val view: FooActivity) { … @Provides @FooScope fun provideView() = view @Provides @FooScope fun provideFooOrBar() = Foo() } 和另一个文件“BarProvider.kt”具有相同的方法名称 @Module class BarProvider(private val view: BarActivity) { … @Provides @BarScope fun provideView() = view @Provides @BarScope fun provideFooOrBar() = Bar() } 在这种情况下,Dagger无法生成一些工厂库,并且出现以下编译错误: Error:(27, 32) error: […]

如何在Android Studio中将Kotlin错误链接到源代码?

我在Android Studio中使用Kotlin插件,一切工作正常,除非在Kotlin文件中有任何编译错误或警告,在消息窗口中产生的错误消息是不可点击的 – 点击它们不会带你到相应的文件(它适用于Java文件中的错误) 这是一个错误还是只是没有实现的东西呢? 我正在使用Android Studio beta 0.8.6,构建工具20.0.0 Kotlin 0.8.11,Gradle 1.12。