匕首2活动不能提供@提供或@产生注释的方法

我是新来的匕首,我试图实现一个从注入正在发生的类inheritance的类。 当我在MainActivity中注入一个组件并从BaseActivityinheritance它时,事情就破灭了。 我的AppComponentClass: @Singleton @Component(modules = {NetworkModule.class, ApplicationModule.class, AndroidModule.class}) public interface AppComponent { void inject (BaseActivity baseActivity); void inject (MainActivity mainActivity); } } 我的ActivityModule类: @Module public class ActivityModule { private Activity activity; public ActivityModule(Activity activity) { this.activity = activity; } @PerActivity @Provides @ActivityContext public Context provideContext() { return activity; } } 我的ApplicationModule类: @Module public class […]

插件没有在Android自动构建中发现gradle错误

由于将Kotlin添加到我们的Android源代码中,我们在自动构建中发生间歇性故障。 大部分的构建都失败了,而十进制构建也许会成功。 在引入Kotlin之前,这些错误并没有发生,而且在我们的开发机器上本地构建时,不会发生这些错误 – 只能在构建服务器上进行。 当通过命令行(即gradlew assembleFlavour1Flavour2 )建立时,我们得到以下错误: Plugin with id ‘com.android.application’ not found 。 但是,当我们从Android Studio构建(在构建服务器上,相同的jenkins奴隶),我们得到一个稍微不同的错误: Plugin with id ‘kotlin-android’ not found 。 我更新了Android Studio(通过File > Settings > System Settings > Updates )和Kotlin(通过Android Studio > Tools > Kotlin > Configure Kotlin Plugin Updates )。 我们的根build.gradle如下所示: // Top-level build file where you can add configuration […]

我如何更新Android工作室2.3.2在Ubuntu的3.0?

其实我想尝试需要android studio 3.0的kotlin语言,但我有2.3.2。 那么如何更新Ubuntu上的东西呢?

org.gradle.api.tasks.TaskExecutionException:执行失败的任务’:app:compileDebugKotlin’

我在两天前开始在Kotlin中创建我的应用程序,而且我的应用程序运行正常,但第二天当我第一次打开该项目并尝试运行我的应用程序时,此Gradle错误显示Compilation error. See log for more details Compilation error. See log for more details当我在“运行任务”中看到此错误 org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:app:compileDebugKotlin’. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87) at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at […]

如何使用Kotlin折叠function将数组转换为地图?

我正试图通过折叠到一个索引的地图的数组。 不知何故IntelliJ标志,当我返回累加器,它期望单位。 当我删除返回它抱怨,我需要我原本想要返回的数据types。 代码如下(Item只是一个数据类) constructor(vararg items: Item){ val itemMap = items.fold(mutableMapOf<Int, MutableList>(), { acc, item -> if (acc.containsKey(item.state)) { acc[item.state]?.add(item) } else { acc.put(item.state, mutableListOf(item)) } return acc }) } 这里晚了一点,所以我可能会错过一些非常明显的事情。 任何帮助将非常感激。 谢谢

如何创建需要find目标文档的Firestore事务

我正在寻找一种方式来创建一个firestore事务,我从查询中find一个文档,然后在一个事务中修改这个文档。 这些线(科特林)的东西: firestore.runTransaction { transaction -> val snapshot = transaction.get(db.collection(“document”) .whereEqualTo(“someField”, null) .orderBy(“creationDate”, ASCENDING) .limit(1L)) val myObject = snapshot.toObject(MyObject::class.java) myObject.someFiled = “123” transaction.set(snapshot.reference, myObject) } 这里的问题是.limit(1)方法返回的查询不是一个DocumentReference,它是事务接受的唯一types。 所以我的问题是,如何在java / kotlin中实现这样的事务呢? 我在这个博客文章中使用admin sdk看到类似的东西: return trs.get(db.collection(‘rooms’) .where(‘full’, ‘==’, false) .where(‘size’, ‘==’, size) .limit(1));

如何在数据模块中使用Android Kotlin Dagger 2和Firebase Auth?

我试图建立一个应用程序,其中data模块是一个库和presentation层是实际的Android应用程序。 理想情况下,我希望firebase依赖项仅存在于data模块中,但apply plugin: ‘com.google.gms.google-services’只能从presentation模块调用apply plugin: ‘com.google.gms.google-services’ 。 把匕首2和Firebase依赖关系放在一起给了我下面的错误: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ‘:presentation:transformDexArchiveWithExternalLibsDexMergerForDebug’. > java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex 删除Firebase身份validation依赖关系或匕首2依赖关系可解决此问题。 如何在data模块中同时使用这两个库? 我的build.gradle data apply plugin: ‘com.android.library’ apply plugin: ‘kotlin-android’ apply plugin: ‘kotlin-android-extensions’ apply plugin: ‘kotlin-kapt’ android { compileSdkVersion 26 buildToolsVersion ‘26.0.2’ defaultConfig { minSdkVersion […]

kotlin – lambda函数如:block:E.() – > Unit是什么意思?

从以前的问题我看到,我们可以做这样的扩展: inline fun Iterable.withEach(block: E.() -> Unit) { forEach { it.block() } } 它将代码块应用于每个可迭代项目。 你可以这样称呼它: listOf(“1000″,”222”).withEach { print(length) } 所以你可以看到字符串的长度函数在lambda里没有任何引用。 我不清楚有什么用的。 E.可以在块types定义中解释“E.()”的含义

Try-Catch Block不可达? 有一个内部try-finally块导致外部try-catch块无法访问?

我正在尝试在Kotlin中编写简单的网站API调用,但是我在实现try-catch块时遇到了一些麻烦。 直到最后的catch语句将整个块转换成不可达的代码。 // REST web service call to get data from coinmarketcap API inner class RetrieveFeedTask : AsyncTask() { override fun doInBackground(vararg p0: Void?): String? { // TODO(“not implemented”) //To change body of created functions use File | Settings | File Templates. try { // create a connection val siteURL = URL(“https://api.coinmarketcap.com/v1/ticker/?limit=200”) val urlConn = […]

Kotlin:如何检查枚举是否包含一个给定的字符串,而不会搞乱例外?

为什么在enum类(以及Java)中没有contains方法? 如何优雅地实现它? 现在我正在使用这个丑陋的方法: val contains: Boolean = try { MyEnum.valueOf(“some string”) true } catch (e: IllegalArgumentException) { false }