今天我开始得到错误Unable to load class ‘kotlin.collections.CollectionsKT’ (如图所示),每次我试图gradle同步我的项目。 我无法find这个错误的任何东西,唯一的解决方案似乎是禁用Intellij上的kotlin插件。 我的一些项目没有kotlin,但其他人(没有kotlin的人在尝试同步时也抛出这个错误),所以这是不可行的选择。 有没有人有任何线索可能是什么?
我正在使用android studio 3.0.1,我正在使用kotlin开发android应用程序。 所以,我已经在我的项目中配置了kotlin。 当我重写任何方法配置kotlin后,我得到的参数名称为p0,p1,p2等,如下所示。 override fun query(p0: Uri?, p1: Array?, p2: String?, p3: Array?, p4: String?): Cursor { … } 而不是这些名字,我想要像下面的投影,选择,selectionArgs等参数的适当名称。 public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) { … } 当我使用java它工作正常,但是当我开始使用kotlin这个问题发生。 这个参数名称很混乱。 所以,我想获得像我在Java代码中获得的名称。 有没有办法做到这一点?
我有一个Kotlin项目,它由三个模块组成: Core < Service < Web 结构是: build.gradle core/ build.gradle service/ build.gradle web/ build.gradle 根build.gradle文件的结构是: buildscript { ext.kotlin_version = ‘1.1.60’ repositories { mavenCentral() jcenter() } dependencies { classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version” } } subprojects { apply plugin: ‘kotlin’ apply plugin: ‘jacoco’ compileKotlin { kotlinOptions.jvmTarget = ‘1.8’ } repositories { mavenCentral() jcenter() } } 个人构建文件看起来像( core ): dependencies […]
我想在一个Sequence无限重复T元素。 这不能使用kotlin.collections.asSequence完成。 例如: val intArray = intArrayOf(1, 2, 3) val finiteIntSequence = intArray.asSequence() val many = 10 finiteIntSequence.take(many).forEach(::print) // 123 这不是我想要的。 我期望某种types的kotlin.collections.repeat函数存在,但没有,所以我自己实现了一个(例如对于这个IntArray ): var i = 0 val infiniteIntSequence = generateSequence { intArray[i++ % intArray.size] } infiniteIntSequence.take(many).forEach(::print) // 1231231231 这是非常必要的,所以我觉得必须有一个更实用,更不详细的方法来做到这一点。 如果存在的话,那么Kotlin的标准方法是什么?重复收集/排列a(n)(in)有限的时间?
ChartsActivity.kt import android.support.v7.app.AppCompatActivity import com.jjoe64.graphview.series.DataPoint import com.jjoe64.graphview.series.LineGraphSeries import kotlinx.android.synthetic.main.activity_charts.* class ChartsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_charts) val datap = DataPoint[]( DataPoint(0, 1), DataPoint(5, 1), DataPoint(6, 1), DataPoint(5, 6), DataPoint(2, 8) ) val series = LineGraphSeries(datap) graph1.addSeries(series) } } 我无法在DataPoint函数中编写正确的系列。 我想使用Kotlin,我还没有find任何kotlin代码的任务。 我怎样才能编写这个系列来获得代码的工作?
通常,我们可以在kotlin中编写下面的代码: val hasValue : Boolean @JvmName(“hasValue”) get() = true 这将为Java interop生成方法hasValue()而不是getHasValue() 。 但是,在一个接口,这给了我一个编译错误: val hasValue : Boolean @JvmName(“hasValue”) get 抽象类中的以下声明也是如此: abstract val hasValue : Boolean @JvmName(“hasValue”) get 所以这里是我的问题:如何告诉kotlin编译器使用hasValue()而不是getHasValue()来获取kotlin接口中属性的getter(和setter)?
我是Dagger2的新手,我正在尝试在我的Kotlin项目(1.1.51)中使用它。 我跟着几个教程,一切都很好。 我有这些在我的gradle文件,我使用的是Android Studio 3.01,我必须使用gradle-3.3 apply plugin: ‘kotlin’ apply plugin: ‘kotlin-allopen’ apply plugin: ‘kotlin-kapt’ compile ‘com.google.dagger:dagger:2.11’ kapt ‘com.google.dagger:dagger-compiler:2.11’ kapt { generateStubs = true } 我可以成功地运行我的项目和Dagger2似乎工作。 唯一令人讨厌的问题是,Dagger创建的类在导入列表中总是显示为红色。 例如DaggerMainComponent。 import com.burfdevelopment.hack24.Dagger.MainComponent import com.burfdevelopment.hack24.Dagger.MainModule import com.burfdevelopment.hack24.Dagger。 DaggerMainComponent 所以,如果做一个代码整洁,删除未使用的导入它总是删除它,即使它被使用。 如果我点击DaggerMainComponent,它会转到生成的类。
我不确定Kotlin编写的以下两个构造函数的区别 class ConcreteItem(val title: String) : Item() { } 和 class ConcreteItem(private val title: String) : Item() { } 正如你所看到的,唯一的区别是标题字段之前的“私人”修饰符。 它将如何影响标题领域的范围?
你好,我正在我的项目上录音,但我想保存这个记录在用户名和主题名称的firebase数据库我怎么能做到这一点? 我的代码是60秒的音频记录,然后停止记录。 这是我的记录保存代码。 class MainActivity : AppCompatActivity(), MediaPlayer.OnCompletionListener { lateinit var recorder: MediaRecorder lateinit var player: MediaPlayer lateinit var file: File lateinit var button1: Button lateinit var button2: Button lateinit var button3: Button lateinit var saveButton: Button lateinit var tv1: TextView lateinit var timeText : TextView lateinit var topicText: EditText var handler: Handler = Handler() […]
我有一个让用户使用Firebase登录的应用,如果他们尚未登录。如果用户登录其用户个人资料信息显示正确。 在关闭应用程序并重新打开用户名和电子邮件不会设置,并进入我的默认文本。 但是,如果我退出并返回将显示。 我觉得它与更新用户界面有关,但卡住了。 如果需要,我可以在午餐rest后发布代码 用代码更新 这是MainActivity中的相关代码,这是我检查用户是否登录,如果允许他们从那里去,如果不开始登录活动。 class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener { val TAG = “MainActivity” var mAuth: FirebaseAuth? = null var mUser: FirebaseUser? = null var userEmailTV: TextView? = null var userDispNameTV: TextView? = null val RC_SIGN_IN = 123 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setSupportActionBar(toolbar) val toggle = ActionBarDrawerToggle( this, drawer_layout, […]