Tag: android studio

Android Studio 3.0 Preview重构Kotlin代码时缺少导入

每当我尝试在Android Studio 3.0上重构Koltin代码时,它只会删除所有“顶级”导入,并开始使用“inplace”导入。 我的意思是,在这种情况下,移动代码。 假设我在com.myapp包下有一个类。 如果我把它移动到com.myapp.anotherpackage这个问题发生 有趣的事实看起来只有当你同时移动多个文件时才会发生 它看起来像: //Before refactoring I have this import import android.support.v7.app.AppCompatActivity; class MyActivity : AppCompatActivity() { //code } 然后重构之后就是这样 //"top level" import is gone class MyActivity : android.support.v7.app.AppCompatActivity() { //"inline" import //code } 如果我不得不再次重构代码,情况就会变得更糟,因为每一个导入都是“内联”的,android studio不会重构这些内容,我必须手动修复它们。 这已经变得非常烦人了,因为我必须修复其中的100多个。 任何想法如何解决这个问题?

在Android Studio中为方法生成KDoc

当在Android Studio中评论Java的方法时,我可以键入/ **,AS为我生成带有方法参数和返回类型的javadoc。 但它似乎不适用于Kotlin。 有什么方法可以让AS自动生成Kotlin KDoc格式的方法文档? 编辑:是的,这个问题是关于可能重复的同样的事情,但我的问题不是“为什么?”,我明白,KDoc有不同的格式。 我的问题是,如果有一种方法可以在AS中对Kotlin执行相同的操作? 也许有一种方法来添加/编辑这个模板或类似的东西?

Android Plugin 2.2.0-alpha1无法与Kotlin编译

升级到Android构建工具2.2.0-alpha1后。 我无法配置应用程序或构建。 我从gradle得到以下堆栈跟踪: e: java.lang.IllegalStateException: Built-in library initialization failed. Please ensure you have kotlin-runtime.jar in the classpath: java.lang.NoSuchMethodError: com.google.protobuf.GeneratedMessageLite.newSingularGeneratedExtension(Lcom/google/protobuf/MessageLite;Ljava/lang/Object;Lcom/google/protobuf/MessageLite;Lcom/google/protobuf/Internal$EnumLiteMap;ILcom/google/protobuf/WireFormat$FieldType;)Lcom/google/protobuf/GeneratedMessageLite$GeneratedExtension; at org.jetbrains.kotlin.builtins.BuiltInsInitializer.initialize(BuiltInsInitializer.kt:45) at org.jetbrains.kotlin.builtins.BuiltInsInitializer.get(BuiltInsInitializer.kt:62) at org.jetbrains.kotlin.platform.JvmBuiltIns$Companion.getInstance(JvmBuiltIns.kt:32) at org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform.getBuiltIns(JvmPlatform.kt:41) at org.jetbrains.kotlin.resolve.TargetPlatformKt.createModule(TargetPlatform.kt:112) at org.jetbrains.kotlin.resolve.TargetPlatformKt.createModule$default(TargetPlatform.kt:111) at org.jetbrains.kotlin.context.ContextKt.ContextForNewModule(context.kt:124) at org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM.createContextWithSealedModule(TopDownAnalyzerFacadeForJVM.java:163) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.analyze(KotlinToJVMBytecodeCompiler.kt:322) at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:129) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:318) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMBytecodeCompiler.kt:124) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:173) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:49) at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.java:220) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.compileNotIncremental(Tasks.kt:497) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler(Tasks.kt:370) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler(Tasks.kt:149) […]

Android Studio在Kotlin第二次编译之前不会编译更改

当我用Kotlin的puglin编译的时候,如果我做了一些改动,我总是必须运行这个项目两次,Android Studio在两次运行这个项目之前都不能识别这个变化,Insnat运行它,

警告:警告:注释处理器“android.arch.lifecycle.LifecycleProcessor”支持的源版本“RELEASE_7”小于“源”1.8

尝试使用Android Studio 3 Canary 5与架构组件和Kotlin构建示例给出了此警告。 谁能告诉我这个原因? 谢谢,Ove 编辑#1:这是Dan Lew前段时间的一个例子 https://github.com/dlew/android-architecture-counter-sample 的build.gradle: apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' android { compileSdkVersion 25 buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId "net.danlew.counter" minSdkVersion 23 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { […]

Kotlin和RxJava2 zip运算符 – 以下函数都不能用提供的参数调用

我在使用Android Studio 3.0 IDE编写Kotlin中的.zip Observable时遇到了问题。 这是我的代码: internal var updateStringEventsSubject = PublishSubject.create<String>() internal var updateIntEventsSubject = PublishSubject.create<Int>() internal var triggerSave = PublishSubject.create<Boolean>() internal var triggerStopAndSave = PublishSubject.create<Boolean>() internal var normalSaveTrigger = triggerSave.debounce(30, TimeUnit.SECONDS) internal var trigger = Observable.merge(normalSaveTrigger, triggerStopAndSave) private fun saveEvents( strings: List<String>, integers: List<Int>, someBoolean: Boolean): Boolean { return true //doesn't matter for now […]

在Android Studio 3.0布局编辑器中渲染错误

我刚开始学习Kotlin的android开发,并开始一个空的项目,并添加了一个活动。 我在Kotlin文档中添加了所需的gradle依赖关系。 默认情况下,MainActivity的xml文件只包含一个TextView。 但是,当我尝试预览布局编辑器中的XML,它显示“渲染错误” Render problem Failed to load AppCompat ActionBar with unknown error. 还有我得到这个 The following classes could not be instantiated: – android.support.v7.widget.AppCompatImageView (Open Class, Show Exception, Clear Cache) – android.support.v7.widget.ActionBarContainer (Open Class, Show Exception, Clear Cache) – android.support.v7.widget.Toolbar (Open Class, Show Exception, Clear Cache) – android.support.v7.widget.AppCompatTextView (Open Class, Show Exception, Clear Cache) – […]

Android Studio 3.0数据绑定参考代码不由android studio生成

我遇到了Android Studio 3.0以及kotlin和数据绑定的问题。 我不知道为什么,但选项设置 – >编辑 – >数据绑定 – >由Android工作室生成的参考代码不工作,因为它应该是。 我已经尝试了不同的3.0版本(加那利3,加那利5,加那利6)与不同的kotlin(1.1.2-3,1.1.3,1.1.3-2)和数据绑定编译器版本。 为了确保我已经创建了一个干净的项目,并且出现了同样的问题。 我敢肯定,问题在于kotlin和数据绑定的结合,因为在同一个项目中,java类中的数据绑定工作得很好,数据绑定生成的文件每次更改.xml文件都会更新。 我不打算在这里粘贴我的每个gradle内容文件,因为我已经尝试了很多kotlin和数据绑定的组合版本。 下面是其中之一。 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-kapt' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.dawidj.myapplication" minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } […]

如何在参数中交叉引用类型

我试图在它们的通用参数中交叉引用类型。 在Java中,我有这样的: public interface Group<C extends Child> { List<C> getChildren(); } public interface Child<G extends Group> { G getParent(); } class MyGroup implements Group<MyChild> { @Override public List<MyChild> getChildren() { return null; } } class MyChild implements Child<MyGroup> { @Override public MyGroup getParent() { return null; } } 使用AndroidStudio的“转换为Kotlin”功能会导致: interface Group<C : Child<*>> { val […]

Android Studio执行失败的任务compilefreeDebugKotlin

Kotlin Android Gradle 我无法编译我的Kotlin Android应用程序 我有gradle建立失败,错误: Error:Execution failed for task ':app:compilefreeDebugKotlin'. > com.android.build.gradle.api.BaseVariant.getProcessResources()Lcom/android/build/gradle/tasks/ProcessAndroidResources; 在我的项目中,我描述了一个简单的适配器 import android.widget.TextView import android.content.Context import java.util.ArrayList import com.idunnololz.widgets.AnimatedExpandableListView import android.view.View import android.view.ViewGroup import android.view.LayoutInflater public class ExpListAdapter(vcontext: Context, vgroups: ArrayList<String>, vtitles: ArrayList<ArrayList<String>>) : AnimatedExpandableListView.AnimatedExpandableListAdapter() { var titles = vtitles var context = vcontext var groups = vgroups override fun getGroupCount(): Int […]