Tag: 安卓

在ContentResolver中使用kotlin会导致IllegalArgumentException

我正在尝试用Kotlin写一个应用程序。 我把contentprovider查询sql在另一个进程。 当在主进程中查询ContentResolver时,应用程序崩溃。 代码是: protected fun select(uri: Uri, sql: String, vararg args: Any): Cursor { val sArgs = Array(args.size(), { i -> lang.String.valueOf(args.get(i)) }) return context.getContentResolver().query(uri, null, sql, sArgs, null) } public fun selectAllAccounts(): Array<Account> { val cursor = select(parseUri(AccountSchema.TABLE_NAME), "select * from " + AccountSchema.TABLE_NAME) val accounts = Array(cursor.getCount(), { i -> if (!cursor.moveToPosition(i)) […]

Dagger2错误:Kotlin:未解决的参考:DaggerSOMETHINGComponent

源代码 我正在构建一个半年前在macOS上运行良好的Kotlin和Dagger2的gradle项目: GitHub的:科特林-Tutorials13 你可以得到它 git clone https://github.com/enbandari/Kotlin-Tutorials.git cd Kotlin-Tutorials/code/Kt13 你可以在IntelliJ IDEA中打开它 建筑环境 我的建筑环境如下: IntelliJ IDEA 2017.1.3 JRE:1.8.0_112-release-736-b21 amd64 JVM:由JetBrains sro提供的OpenJDK 64位服务器虚拟机 Windows 10 10.0 建设成果 它调出一个错误: C:\Users\xiang\IdeaProjects\Kotlin-Tutorials-master\code\Kt13\src\main\kotlin\net\println\kt13\Service.kt Error:(3, 25) Kotlin: Unresolved reference: DaggerRESTFulComponent Error:(19, 9) Kotlin: Unresolved reference: DaggerRESTFulComponent 反编译 所以,我反编译RESTFulComponent.class 它的源文件是RESTFulComponent.kt package net.println.kt13 import dagger.Component import net.println.kt13.module.RetrofitModule import retrofit2.Retrofit import javax.inject.Singleton /** * Created […]

Kotlin inline关键字导致IntelliJ IDEA覆盖率报告0%

我创建了一个非常简单的测试函数如下 class SimpleClassTest { lateinit var simpleObject: SimpleClass @Mock lateinit var injectedObject: InjectedClass @Before fun setUp() { MockitoAnnotations.initMocks(this) } @Test fun testSimpleFunction() { simpleObject = lookupInstance() } inline fun lookupInstance() = SimpleClass(injectedObject) } 我用Coverage运行它…测试覆盖率是0%。 但是,如果我删除inline关键字,测试范围编号现在显示。 这是一个Kotlin问题或Android IntelliJ IDEA覆盖问题? (注意:JaCoco覆盖率很好)。 注意:我正在使用Android Studio 2.0和Kotlin 1.0.2

如何在Java中轻松使用Kotlin渠道生产者?

作为开发新API的一部分,我正在学习使用Kotlin。 最初我希望Kotlin API能在Java(Android)项目中使用,但从长远来看,我希望完全采用Kotlin。 作为改进长期运行过程的一部分,我想使用协程。 具体来说, kotlinx.courtines包中的渠道生产者 。 例如: fun exampleProducer() = produce { send("Hello") delay(1000) send("World") } 在Java中使用这个最好的方法是什么? 我可以为Kotlin和/或Java添加临时的“帮手”功能。

Kotlin文件apk Android流?

什么是Android的apk的Kotlin文件的执行流程。 使用Java文件就像这样.Java文件 – > .class文件 – > classes.dex – > .apk文件。 参考这个 更多细节。

“添加Kotlin到Android项目时出错”名称为'android'的扩展名不存在“错误

当我尝试使用官方Kotlin教程( https://kotlinlang.org/docs/tutorials/kotlin-android.html )将Kotlin添加到我们的Android项目中时,Gradle无法启动错误Extension with name 'android' does not exist 。

Android Espresso测试(用Kotlin编写)看不到主要的类和包

我有一个Kotlin咖啡测试的问题。 我已经在模块的构建脚本中应用了Kotlin-Android Gradle插件,并且测试在Android Studio中运行时没有问题(测试类由AndroidJUnit4运行器注释并运行),但是从终端运行Gradle任务“assembleDebugAndroidTest”未能找到我的主要的类和包(测试中使用的类),它引发一个Unresolved Reference错误。 以下是构建脚本的sourceSets部分: sourceSets { androidTest { java.srcDir 'src/sharedTestUtils/java' java.srcDir 'src/acceptanceTests/java' java.srcDir 'src/functionalTests/java' java.srcDir 'src/sharedTestUtils/kotlin' java.srcDir 'src/acceptanceTests/kotlin' java.srcDir 'src/functionalTests/kotlin' } acceptanceTests { java.srcDir 'src/sharedTestUtils/java' java.srcDir 'src/sharedTestUtils/kotlin' } // source sets for Kotlin // main.java.srcDirs += 'src/main/kotlin' test.java.srcDirs += 'src/test/kotlin' } 并在模块中测试依赖关系: apply plugin: 'kotlin-android' dependencies { androidTestCompile deps.kotlin androidTestCompile deps.kotlinTest androidTestCompile deps.kotlinTestJunit […]

除非明确引用,否则Kotlin无法识别参数

在Kotlin编写一个Android项目时,有一个问题困扰着我。 当我尝试调用一些基本的Android库函数时,编译器要求非常具体的引用。 这是一个LoaderManager被初始化的例子。 记下最后一个参数。 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) loaderManager.initLoader(LOADER_ROUTINE, arguments, this as android.support.v4.app.LoaderManager.LoaderCallbacks<Cursor>) } 这是奇怪的部分。 如果我做一个基于Java的片段,初始化加载程序没有冗长或编译器错误,然后转换为Kotlin,没有错误: override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) loaderManager.initLoader(88, arguments, this) } 我错过了什么。 Kotlin需要阻止什么情况下必须执行从第一个示例中添加WhateverSpecificClass的解决方法? 编辑:这是一些额外的上下文。 编译期间的具体错误是: Type inference failed: fun <D : Any!> initLoader (id: Int, args: Bundle!, callback: LoaderManager.LoaderCallbacks<D!>!) : Loader<D!>! cannot be applied Int, Bundle!, EditRoutine ) […]

Android Studio 3无法建立kotlin片段

我试图使用Android Studio 3.0与我现有的项目Kotlin。 我用kotlin创建了一个片段。 我试图在我的Java活动中使用kotlin片段。 但每次我尝试运行它,我都会得到 Error:(209, 5) error: cannot find symbol class BlankFragment BlankFragment.kt import android.content.Context import android.net.Uri import android.os.Bundle import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup class BlankFragment : Fragment() { // TODO: Rename and change types of parameters private var mParam1: String? = null private var mParam2: String? = null private […]

总是使用Kotlin Android的supportActionBar为null

刚刚谷歌已经把Kotlin作为一种官方的编程语言,所以开始把我的文件转换成Kotlin。 在转换我的代码的同时,我尝试使用supportActionBar时总是收到空指针异常 // set up action bar setSupportActionBar(mToolbar) supportActionBar!!.setDisplayShowTitleEnabled(false) // set the hamburger menu supportActionBar!!.setDisplayHomeAsUpEnabled(true) supportActionBar!!.setHomeButtonEnabled(true) 我的AndroidManifest条目是 <activity android:name=".activities.MainActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar /> 没有操作栏将windowActionBar设置为false。 每当我运行应用程序,我得到空指针异常访问supportActionBar。 任何人都可以帮助我吗?