Tag: 安卓

Kotlin扩展未解决的参考

我表示要学习kotlin,并试图通过kotlin指南创建一个项目。 在其中一个指南中说,我可以使用View的ID而不是findViewById 。 我已经导入了kotlin-android-extensions插件,并将其添加到gradle文件中,但仍然无法通过仅使用id来获取对象的引用。 有人能帮我吗? 我正在使用Android Studio 2.3和Kotlin版本1.1.2-5。 这是我的代码: 主要的gradle文件 buildscript { ext.kotlin_version = "1.1.2-5" repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.3.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" } } 应用程序gradle文件 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 25 buildToolsVersion "25.0.0" defaultConfig { applicationId ".kotlintodoapp" minSdkVersion 15 targetSdkVersion 25 versionCode 1 […]

Kotlin RC NoClassDefFoundError

更新kotlin RC-1036后,我面临一个奇怪的问题:我的代码甚至没有编译和打包。 当构建通过和应用程序启动时,我得到了ClassNotFoundException: Didn't find class "example.myapplication.MainActivity" 。 我试图用apktool反编译apk文件,没有找到我的类内的档案。 build/intermediates dir中也没有类。 这是我的项目: app/build.gradle : apply plugin: 'com.android.application' apply plugin: 'kotlin-android-extensions' buildscript { ext.kotlin_version = '1.0.0-rc-1036' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } repositories { mavenCentral() } android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "example.myapplication" minSdkVersion 21 targetSdkVersion 23 versionCode 1 […]

ArrayAdapter.clear kotlin

我正在努力学习kotlin,我想将我的一个Android项目从java转换为kotlin。 但是我有一个问题 override fun onResponse(call: Call<List<CitySearch>>?, response: Response<List<CitySearch>>?) { if(response != null && response.isSuccessful) { val list = response.body() cityAdapter.clear() if(list != null && !list.isEmpty()){ cityAdapter.addAll(list) listView.visibility = View.VISIBLE recyclerView.visibility = View.GONE cityName.visibility = View.GONE } } } 我得到的错误操作不支持只读集合在与cityAdapter.clear()行kotlin.collections.EmptyList.clear()我不知道如何解决它。 对于所有的项目,请检查 WeatherFragment有问题的历史版本 当前版本

从Java迁移到Kotlin

我有一个用Java编写的Android应用程序,但是我想把它转换成Kotlin。 我添加了Kotlin插件并配置了我的应用程序的gradle。 buildscript { ext.kotlin_version = '1.1.4-3' dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' sourceSets { main.java.srcDirs += 'src/main/kotlin' } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } 我正在转换单个文件从Java到Kotlin使用 – 代码 – >转换Java文件到KOTLIN 转换后,我得到这个错误: Process: com.stockal.app, PID: 10633 java.lang.NoSuchMethodError: No static method zzb(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzac; or its super classes (declaration of 'com.google.android.gms.common.internal.zzac' […]

Kotlin和Dagger2

我正在尝试将Kotlin加入到我的项目中,但是在启用Kotlin之后,我无法再创建Dagger2类。 我尝试了第二个项目,我有同样的问题(它实际上更糟糕,它抱怨Dagger2和DataBinding)。 这些是我为了启用Kotlin所做的改变: 项目build.gradle: diff –git a/build.gradle b/build.gradle index 486700c..91e4cda 100644 — a/build.gradle +++ b/build.gradle @@ -1,13 +1,15 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.kotlin_version = '1.0.5-3' repositories { jcenter() } dependencies { – classpath 'com.android.tools.build:gradle:2.3.0-alpha2' + classpath 'com.android.tools.build:gradle:2.3.0-beta1' classpath 'com.google.gms:google-services:3.0.0' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' […]

Android Studio 3.0 Canary 1:引用Kotlin类的Kotlin测试或Java测试失败

UPDATE 这个问题已经提交到这里: https : //youtrack.jetbrains.com/issue/KT-17951 更新2 这个bug已经在Android Studio 3.0 Canary 3中修复了 原始帖子 我刚刚开始玩Android Studio 3.0,我从一开始就启用了kotlin支持。 我在我的项目中写了一个非常简单的Kotlin类: data class Wallet(val coins: Int) { fun add(value: Int): Wallet = Wallet(coins + value) fun substract(value: Int): Wallet = if (coins > value) Wallet(coins + value) else throw InsufficientFundsException() } 现在我想测试这个类,首先我在Kotlin上写了一个本地运行的unittest(测试目录): class WalletTestKotlin { @Throws(Exception::class) @Test fun add() { […]

Kotlin-allopen for android

是否有可能使用kotlin-allopen gradle插件进行android测试与mockito? 我试图把kotlin-allopen插件添加到我的build.gradle并定义注释。 buildscript { ext.kotlin_version = '1.0.6' dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version" } } apply plugin: 'com.android.application' apply plugin: 'kotlin-allopen' apply plugin: 'kotlin-android' allOpen { annotation("com.mycompany.OpenForTest") } 而这些用于注释本身 annotation class OpenForTest 这不适合我 也许我想念什么?

为什么Kotlin插件为Android项目添加了kotlin-stdlib-jre7(不是kotlin-stdlib)参考

Android Studio 2.3.3; Kotlin插件:1.1.4; Kotlin编译器:Kotlin到JVM:1.6。 Android Studio>新建项目>在Project action中配置Kotlin将kotlin-stdlib-jre7的参考添加到gradle文件。 我期望kotlin-stdlib,因为我们Kotlin的目标JVM是1.6。 没有找到好的解释。 例如, 这个答案说明 kotlin-stdlib-jre7工件不应该在Android上工作,它目前仅支持Java 6平台。 在定位Android时,应该使用为JRE 6构建的kotlin-stdlib

Kotlin Android扩展和片段

如何使用带Fragment的Kotlin Android扩展? 如果我在onCreateView()使用它们,我得到这个NullPointerException异常: 导致:java.lang.NullPointerException:试图调用虚拟方法'android.view.View android.view.View.findViewById(int)'对空引用 这里是片段代码: package com.obaied.testrun.Fragment import android.os.Bundle import android.support.v4.app.Fragment import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.obaied.acaan.R import kotlinx.android.synthetic.main.fragment_card_selector.* public class CardSelectorFragment : Fragment() { val TAG = javaClass.canonicalName companion object { fun newInstance(): CardSelectorFragment { return CardSelectorFragment() } } override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { […]

Kotlin类NoClassDefFoundError崩溃

我有一个现有的Android项目,使用以下库: AutoValue Dagger2 RxJava Retrolambda 我正在尝试添加Kotlin支持,以便我可以将项目慢慢迁移到Kotlin。 这是我所做的。 增加了Kotlin依赖。 将其中一个类转换为Kt类,并转移到src/main/kotlin/..package.. 源集中添加了kotlin。 sourceSets {main.java.srcDirs + ='src / main / kotlin'} 当我做一个干净的生成和部署应用程序,我得到NoClassDefFoundError异常。 但是,如果我再次部署它工作得很好。 有什么建议么? 我在课堂上没有任何注释,所以我没有申请kapt插件。 注意:我正在使用最新的kotlin 1.0.4。 我也有即时运行禁用。