Tag: android

错误:执行任务':app:compileDebugKotlin'失败。 >编译错误。 查看日志了解更多详情

Error:Execution failed for task ':app:compileDebugKotlin'. > Compilation error. See log for more details 建立:gradle这个(模块:APP) buildscript { repositories { maven { url 'https://jitpack.io' url 'https://maven.fabric.io/public' } } dependencies { classpath 'io.fabric.tools:gradle:1.+' } } apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'io.fabric' apply plugin: 'kotlin-android-extensions' repositories { maven { url 'https://maven.fabric.io/public' } mavenCentral() } android { […]

区分Kotlin中模棱两可的扩展

当我提到rng.max时,我遇到了编译器“不能在以下候选者中选择”的问题: rng:IntRange : inline val <T:Comparable<T>> ClosedRange<T>.max get() = endInclusive // max of range inline val <T:Comparable<T>> Iterable<T>.max get():T? = max() // max element 我认为这是因为一个ClosedRange实现ClosedRange和(间接通过IntProgression ) Iterable 。 如果我想编写一个适用于CharRange , LongRange和CharRange (可能但不一定是扩展ClosedRange )的扩展ClosedRange ,是否有任何可以明确解析为ClosedRange语法,而不是相似名称的Iterable在这种情况下扩展?

Kotlin扩展功能:未解决的参考

我试图创建这个扩展功能: fun <T : RealmObject> Realm.query(myClass : KClass<T>) { RealmQuery.createQuery(this, myClass::class.java) } 这不会编译。 编译器说:“无法解析的引用:myClass”,当我写 myClass::class.java 但是,如果我这样做: fun <T : RealmObject> Realm.query(myClass : Class<T>) { RealmQuery.createQuery(this, myClass) } 它完美的作品! 我不明白为什么。

Android Kotlin将项目添加到来自微调的ListView

我对Android开发和Kotlin颇为陌生。 我用一些字符串创建了一个微调。 之后,我想添加从微调选定的项目,并将其添加到列表和最后一步是保存该列表被存储为一个对象显示在另一个列表(只是名称),如果我点击它,它会打开我以前创建的列表。 我会告诉你的代码和我的布局,让你更好地了解我所做的和失踪 从这里布局 (这是保存的列表将会去的地方 – activity_kit_list):我点击NEW,然后转到我拥有的另一个活动(但由于我的声望而无法显示) – activity_new_kit_list :(此步骤已创建) 然后,我点击微调,它显示我有(这是工作)的阵列。 我无法绕过的是我如何让其余的工作。 NewKitListActivity: 类NewKitListActivity:AppCompatActivity(){ var spinnerArray = arrayOf("Dumbell", "Punching Bag", "Yoga Ball", "Skipping Rope") //var spinnerArray = arrayOf(DataService.kitList) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_new_kit_list) val spinner = newKitItemSpinner val spinnerArrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray) //selected item will look like a spinner set from […]

任务之间的Gradle依赖关系

因此,自从添加了新的Room android架构库以来,这已经开始发生了。 我遇到了AppDatabase_Impl不存在的问题,我通过将kapt添加到注释中解决了这个问题: Android Room Persistences库和Kotlin Kotlin中的Room Persistence lib实现 Kotlin中的房间持久性库实现(Gradle错误) 我有其他的错误,我怀疑是由于AS,Kotlin和Java 8,所以我尝试更新到AS 3.0 我现在正在尝试构建时出现以下错误: Information:Gradle tasks [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:compileDebugSources, :app:compileDebugAndroidTestSources, :app:compileDebugUnitTestSources, :cryptocurrency-icons:generateDebugSources, :cryptocurrency-icons:mockableAndroidJar, :cryptocurrency-icons:generateDebugAndroidTestSources, :cryptocurrency-icons:compileDebugSources, :cryptocurrency-icons:compileDebugUnitTestSources, :cryptocurrency-icons:compileDebugAndroidTestSources] Error:Circular dependency between the following tasks: :app:compileDebugKotlin +— :app:dataBindingExportBuildInfoDebug | \— :app:compileDebugKotlin (*) \— :app:kaptDebugKotlin \— :app:dataBindingExportBuildInfoDebug (*) (*) – details omitted (listed previously) Information:BUILD FAILED in […]

android中的setOnLongClickListener和kotlin

我怎样才能在我的ListView中的每个项目中使用setOnItemClickListner ? 我的xml: <ListView android:id="@+id/tv1" android:layout_width="match_parent" android:layout_height="wrap_content"> </ListView> 这是我的适配器类 inner class mo3d1Adapter : BaseAdapter { override fun getItemId(p0: Int): Long { return p0.toLong() } override fun getCount(): Int { return listOfmo3d.size } var listOfMkabala = ArrayList<MeetingDetails>() var context: Context? = null constructor(context: Context, listOfMkabaln: ArrayList<MeetingDetails>) : super() { this.listOfMkabala = listOfMkabaln this.context = context } […]

将传递lambda到Observable.subscribe in kotlin导致内存泄漏?

请参阅以下kotlin代码: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { val disposable = Observable.interval(1, TimeUnit.SECONDS, AndroidSchedulers.mainThread()) .subscribe { textView.text = it.toString } } } 在这里,我正在传递一个lambda表达式,而不是一个匿名的内部类。 那么是否需要调用disposable.dispose()以防止内存泄漏? 或者,lambda表达式不会保留对MainActivity类的实例的隐式引用。 如果我确实需要处理它,那么最好的方法是什么?为什么?

匕首2生成的测试组件不被识别

我希望这只是我在这里做错了。 我试图使用Dagger 2.0为我的JUnit测试注入依赖( 不是Espresso测试 ,只是纯JUnit)。 所以,我有一个“主”的Java模块和一个“测试”的Java模块。 在主模块中,我有一个Dagger模块和一个组件: @Module public class MainModule { @Provides public Widget provideWidget() { return new ConcreteWidget(); } } … @Component (modules = MainModule.class) public interface MainComponent { void inject(WidgetConsumer consumer); } 在我的测试模块中,我有以下几点: @Module public class TestModule { @Provides public Widget provideWidget() { return new Widget() { @Override public void doThing() { […]

在gradle android库kotlin项目中禁用META-INF / *生成

美好的一天。 我写了一个kotlin android库并将其上载到bintray。 但是当我尝试在某些项目中使用它(通过gradle编译)时,它无法生成以下错误: > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/library_release.kotlin_module File1: C:\Users\Charlie\.android\build-cache\2939fbc6b0336396c9c4912d615880645b2c729d\output\jars\classes.jar File2: C:\Users\Charlie\OneDrive\Dev\Projects\AndroidStudio\MetuCardLib\demo\build\intermediates\bundles\default\classes.jar 我查阅了这两个.jar文件,它们都包含了带有library_release.kotlin_module文件的META-INF文件夹。 但更重要的是生成.aar(在bintray发布的Android存档)包含此文件夹以及此文件。 我已经检查了其他像样的bintray android库,它们似乎没有包含任何META-INF文件。 但是包含它的那些(在大多数情况下它们包含许可证文件)会产生相同的DuplicateFileException ,解决它的方法是在use-project的gradle文件中明确地排除它们。 这个library_release.kotlin_module文件有什么用处,我怎样在发布期间禁用它的生成? 因为我不想明确地排除使用这个库的每个项目,我也不想问其他开发者这样做。 这是图书馆的回购: https : //github.com/arslancharyev31/Anko-ExpandableTextView/它是bintray回购: https ://bintray.com/arslancharyev31/android/Anko-ExpandableTextView

如何使用Android绑定库和Kotlin从视图绑定onClick事件?

我努力使Android绑定库与Kotlin一起工作。 我想要实现的是向我的Presenter类派发一个onClick事件。 我所做的是: 在模块的gradle文件上启用数据绑定:dataBinding dataBinding {enabled = true} 导入数据绑定编译器: kapt 'com.android.databinding:compiler:2.0.0-beta6' 生成存根: kapt {generateStubs = true} 在MainPresenter.kt上实现方法: fun onClickEditProfile () { log("method you hoped to get called was called") mView!!.getContext().snackbar("received event: onClickEditProfile via data binding, this is awesome").show() } 准备布局: <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <data> <variable name="presenter" type="br.com.tyllt.presenter.MainPresenter" /> </data> <com.github.clans.fab.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="@{() -> presenter.onClickEditProfile()}" […]