Tag: android

Kotlin单元测试从Android Studio UI运行时始终通过

我试图在我的应用程序中用Kotlin实现一些单元测试。 发生的问题是,当我从UI运行测试时,测试总是通过,无论我做什么。 如果我从终端运行测试,一切都如预期,测试失败时,给出不正确的值。 有谁知道为什么发生这种情况? 这是从Android Studio中的问题吗? 有没有办法解决它? 即使这个测试通过从UI运行时 @Test fun testMe() { assertEquals(true, false) }

每次我在公司的申请工作时,是否需要更新Kotlin?

我在为我工作的公司构建一个Android项目时遇到了麻烦。 目前,由于在.gradle文件中定义的依赖项的指定版本与当前版本的kotlin不匹配,所以当我尝试构建我的项目时,我遇到了一大堆错误。 所以,为了纠正这个问题,我已经更新了项目中突出显示的依赖项版本,以匹配我正在使用的kotlin的当前版本。 我最大的问题是每次我想要在Android上开发时,是否必须这样做? 我假设答案是很胖的,但是作为一个完全陌生的人,如果可能的话,我绝对需要社区的帮助。 只是为了解释我,我们有限的发展资源,因此这里的问题。 我将要接管Android的一面,也许应该注册一个为期一周的品酒课程(或类似的东西),但现在,我有我们的整个Android应用程序在最小的意见,测试或说明。 我也把这个问题发布到Reddit,我得到的最好的建议是添加一个“+”的build.gradle而不是版本号的依赖。 我从此尝试过,觉得它可能不是我需要的解决方案。 这是因为我觉得如果这是问题,实时应用程序将不会工作。 总之,我觉得我的应用程序的本地版本可能不工作,因为我有一些设置在Kotlin / Android工作室的某处,我需要改变…..任何建议,您可以提供RE这些设置可能会是巨大的帮助!

Kotlin Android开始新的活动

我想开始在Android上的另一个活动,但我得到这个错误: 请指定构造函数调用; 分类器“Page2”没有伴随对象 在实例化Intent类之后。 我应该怎么做来纠正错误? 我的代码: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun buTestUpdateText2 (view: View) { val changePage = Intent(this, Page2) // Error: "Please specify constructor invocation; // classifier 'Page2' does not have a companion object" startActivity(changePage) } }

Kotlin:ProGuard擦除属性属性

TL; DR :在启用了proguard的情况下,使用反射时,我的属性看起来是私有的,不可为空且没有注释,尽管proguard配置应该保留所有这些属性。 我有一些简单的data class与公共属性作为我的Android应用程序中的数据模型。 后来,当做所述类的泛型[de]序列化时,我像这样过滤属性列表: val properties = instance::class.memberProperties .filter { it.visibility == KVisibility.PUBLIC } // && some other conditions, unrelated here .filterIsInstance<KMutableProperty<*>>() 它正常工作在我的调试版本(我的意思是选择我想要的属性)。 但是,在执行释放构建时,如果proguard处于活动状态, 则结果为空 。 为了检查原因,我记录了关于一个类的属性的所有相关内容 – 显示它们的visibility字段读取PRIVATE (并且所有其他属性在调试版本上保持不变)。 我已经有一个线程在proguard配置保持所有的模型: -keepclassmembers class * extends com.models.package.name.BaseModel { *; } 我之前试过这个,结果相同: -keep class com.models.package.name.** { *; } 为什么/ proguard如何影响房屋的可见度? 我应该修改配置吗? 还是我在这里错过了别的东西? 更新 :似乎知名度不是唯一的事情。 prop.returnType.isMarkedNullable也不起作用,对于声明为空的属性返回false […]

重复条目:META-INF / myLibrary.kotlin_module

更新到Android 3.0后,得到Kotlin错误: Execution failed for task ':myLibrary:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug'. > java.lang.RuntimeException: java.util.zip.ZipException: duplicate entry: META-INF/myLibrary.kotlin_module 这是我的库buid.gradle文件: apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' … dependencies { api "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" } 这是我的项目build.gradle ext.kotlin_version = '1.1.51' repositories { jcenter() mavenCentral() google() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }

Kotlin,Java,multidex,Dagger 2,Butterknife和Realm:transformClassesWithMargingForDebug:重复条目:org / jetbrains / annotations / NotNull.class

我们有现有的Java Android代码。 我们想要无痛地慢慢开始移动到Kotlin。 我们用Dagger 2,Butterknife和Realm。 我们使用Java 8编译器(但是我们的targetCompatibility和sourceCompatibility是1.7)。 我一直在网上漫游几个小时,看到了,GitHub对话等,并设法解决除了一个之外的所有问题: 构建是成功的,但是在尝试调试时,我们得到: Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/jetbrains/annotations/NotNull.class 有没有办法解决Gradle中的重复条目(也许使用packagingOptions或resolutionStrategy ?因为它是来自插件的重复…?)? 再次 – build project没有任何错误,只有transformClassesWithJarMergingForDebug失败! 这是应用程序的gradle: apply plugin: 'com.android.application' apply plugin: 'kotlin-android' //apply plugin: 'com.neenbedankt.android-apt' apply plugin: 'realm-android' kapt { generateStubs = true } android { signingConfigs { config { keyAlias 'MyAndroidKey' keyPassword 'password' […]

Kotlin:Gradle增量编译

在M9公告中,有人表示现在支持增量编译。 这是否也适用于Gradle,尤其是Android? 如果是,如何启用它?

使用单元测试支持清理Kotlin中的协程

一段时间以来,我们正在与Kotlin合作,而我们目前正在关注的一件事情是使用Coroutines来处理我们想要运行异步的操作。 虽然示例的用法是清楚的,这是有效的,我有一些问题整合在一个干净的方式在我们的架构。 当看一个方法的领域为焦点的类的实现,这个想法是,它很容易阅读,有尽可能少的异步功能“噪音”。 我知道我不能有异步,没有实际使用它。 所以写这样的东西是我想要的: val data = someService.getData().await() // work with data 但是这是我想要阻止的: launch(UI) { val data val job = async(CommonPool) { data = someService.getData() } job.await() // work with data } 那么,我想配对这些领域为重点的类的实际单元测试,但我真的不能得到这个工作。 我们来看一个例子: // Some dependency doing heavy work class ApiClient { suspend fun doExpensiveOperation(): String { delay(1000) return "Expensive Result Set" } […]

这是用图像(Android / Kotlin)离线保存大量数据的最佳方法。

请建议使用图片(Kotlin)离线保存数据的最佳方法。 该应用程序需要离线运行,以便从Web服务获得10,000个产品。 我需要离线保存图像。 请分享您的宝贵评论。 选项 同步适配器 运行服务以保存数据 问题可能会面临 抓取数据时应用程序可能关闭。

kotlin android中的setOnLongClickListener

我怎样才能在我的ListView每个项目中使用setOnClickListener ? 我的xml: <ListView android:id="@+id/tv1" android:layout_width="match_parent" android:layout_height="wrap_content"> </ListView>