天道酬勤,学无止境

kotlin

Using Amazon AWS Cognito `.well-known/jwks.json` data fails to base64 decode some fields

问题 使用 Amazon AWS Cognito Federated Identities并在以下位置解析数据时: https://cognito-identity.amazonaws.com/.well-known/jwks_uri看起来像: {"keys":[ {"kty":"RSA", "alg":"RS512", "use":"sig", "kid":"ap-northeast-11", "n":"AI7mc1assO5n6yB4b7jPCFgVLYPSnwt4qp2BhJVAmlXRntRZ5w4910oKNZDOr4fe/BWOI2Z7upUTE/ICXdqirEkjiPbBN/duVy5YcHsQ5+GrxQ/UbytNVN/NsFhdG8W31lsE4dnrGds5cSshLaohyU/aChgaIMbmtU0NSWQ+jwrW8q1PTvnThVQbpte59a0dAwLeOCfrx6kVvs0Y7fX7NXBbFxe8yL+JR3SMJvxBFuYC+/om5EIRIlRexjWpNu7gJnaFFwbxCBNwFHahcg5gdtSkCHJy8Gj78rsgrkEbgoHk29pk8jUzo/O/GuSDGw8qXb6w0R1+UsXPYACOXM8C8+E=", "e":"AQAB"}, ... } 使用此代码( Kotlin 调用 JDK 8 Base64

2022-07-11 09:52:48    分类:技术分享    java   amazon-web-services   kotlin   amazon-cognito

Activity never becomes requested state in UI Testing

When implement code to test UI in android using kotlin. this is my code I thinks it 's simple code to test but android studio prevent me due to some problem > I searched a lot for this but no result . I tried a lot of solution but no result also . Thanks . I get this error and activity which I test doesn't start . java.lang.AssertionError: Activity never becomes requested state "[STARTED, RESUMED, DESTROYED, CREATED]" (last lifecycle transition = "PRE_ON_CREATE") at androidx.test.core.app.ActivityScenario.waitForActivityToBecomeAnyOf(ActivityScenario.java:301) at androidx.test.core.app

2022-06-04 15:15:12    分类:问答    java   android   kotlin   junit   android-espresso

Error: "Only the Kotlin standard library is allowed to use the 'kotlin' package"

I want to build my first kotlin project in Android studio 3.0.1 . but i got these 2 errors : Only the Kotlin standard library is allowed to use the 'kotlin' package . Error:Execution failed for task ':app:compileDebugKotlin'. how can i use or add the Kotlin standard library? manifest: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="kotlin.amirreza.mykotlinproject"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android

2022-06-01 07:40:03    分类:问答    android   android-studio   kotlin

Android/Kotlin: unresolved reference: timber

问题 我正在尝试为 Android 编写一个 kotlin 库,但不能包含木材。 我总是收到以下错误: Error:error: unresolved reference: timber 我的 build.gradle 中有这个: apply plugin: 'java-library' apply plugin: 'kotlin' dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version" } sourceCompatibility = "1.8" targetCompatibility = "1.8" buildscript { ext.kotlin_version = '1.1.2-4' repositories { maven {url "https://maven.google.com"} mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } repositories { mavenCentral() }

2022-05-17 04:56:07    分类:技术分享    android   kotlin   timber-android

How start annotationProcessing (kapt) for local library?

问题 我编写了用于注释处理的小型库。 使用 Gradle 将其编译为 jar 文件并添加到 android 项目中。 在 build.gradle app lvl 我添加了: dependencies { //... compile files('/Users/I/Documents/Projects/my/test2/build/libs/codelib-0.3.jar') } 和 android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true 但是,如果我构建项目 java 类没有生成。 在另一个java项目(不是android!)中,所有完美的作品(对于构建我使用命令gradle assemble )和文件创建。 对于另一个依赖项(dagger,glide)中的annotationProcessing,我使用'kotlin-kapt',他在那里工作得很好,但他显然不是本地的。 回答1 dependencies { // ... kapt files('/Users/I/Documents/Projects/my/test2/build/libs/codelib-0.3.jar') }

2022-05-17 04:45:16    分类:技术分享    java   gradle   kotlin   annotation-processing

What does ?. mean in Kotlin when used on the left side of an assignment?

问题 根据 Kotlin 文档,?. 运算符表示“安全调用”,这意味着如果在方法调用链中使用它,则如果使用它的任何值都是 null,则整个链将返回 null。 但是如果它用在作业的左侧呢? 由于左侧不是“返回”任何东西的一侧,因此它似乎可能具有不同的效果。 这是我正在谈论的一个例子: val myObj = SomeObj() myObj?.property = SomeClass.someFunc() // What does ?. do in this context? 回答1 这意味着如果左侧的安全调用之一失败(即它的接收者为空),则整个赋值被跳过,右侧的表达式根本不被计算。 val nullable: Container? = null nullable?.x = f() // f is not called (可运行的演示) 回答2 我刚才在 Kotlin 中看到了一个有趣的问答。 即使答案很好,但我想更详细地澄清它。 下面的赋值表达式: myObj?.property = SomeClass.someFunc() 由 Kolin 转换为 Java 字节码,如下所示: val it = myObj; if(it != null){ it.property = SomeClass.someFunc(); } 所以多线程没有问题。 它仍然可以正常工作,我已经在 github

2022-05-17 04:44:08    分类:技术分享    kotlin

How to annotate Column as NOT NULL using Android Room Persistence Library

问题 我的数据类看起来像这样 @Entity(tableName = "items") data class Item( @ColumnInfo(name = "name") var name: String = "", @ColumnInfo(name = "room") var room: String = "", @ColumnInfo(name = "quantity") var quantity: String = "", @ColumnInfo(name = "description") var description: String = "", @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") var id: Long = 0 ) Room 使用 SQLite,SQLite 在其数据库中支持 NOT NULL 列。 我尝试使用 @NonNull 注释列,但没有效果。 有没有办法使房间数据库中的列不能为空? 回答1 为了确定 NOT NULL 的确切注释,我浏览了此链接提供的所有注释列表:android.arch.persistence.room 但找不到任何相关注释: 我的假设是,由于您使用的是 Kotlin,它默认将 var 视为非可选的,因此您声明的所有属性都不是 NULL。 为了将 var

2022-05-17 03:29:25    分类:技术分享    android   sqlite   kotlin   android-room

Call Kotlin inline function from Java

问题 例外.kt: @Suppress("NOTHING_TO_INLINE") inline fun generateStyleNotCorrectException(key: String, value: String) = AOPException(key + " = " + value) 在科特林: fun inKotlin(key: String, value: String) { throw generateStyleNotCorrectException(key, value) } 它在 kotlin 中工作,并且函数是内联的。 但是在Java代码中使用时,就是不能内联,仍然是正常的静态方法调用(从反编译的内容看)。 像这样的东西: public static final void inJava(String key, String value) throws AOPException { throw ExceptionsKt.generateStyleNotCorrectException(key, value); // when decompiled, it has the same contents as before , not the inlined contents. } 回答1 Java 文件不支持 Kotlin 编译器完成的内联,因为 Java

2022-05-17 03:00:43    分类:技术分享    kotlin   inline   kotlin-interop

Kotlin use Java callback interface

问题 我有一个 Web 视图。 我想打电话 public void evaluateJavascript(String script, ValueCallback<String> resultCallback) 这种方法。 这是 ValueCallback 接口: public interface ValueCallback<T> { /** * Invoked when the value is available. * @param value The value. */ public void onReceiveValue(T value); }; 这是我的科特林代码: webView.evaluateJavascript("a", ValueCallback<String> { // cant override function }) 有人知道在 kotlin 中重写 onReceiveValue 方法吗? 我尝试了“将 Java 转换为 Kotlin”,但结果如下: v.evaluateJavascript("e") { } 谢谢! 回答1 以下行称为 SAM 转换: v.evaluateJavascript("e", { value -> // Execute onReceiveValue's code }) 只要 Java 接口只有一个方法,Kotlin 就允许您传入

2022-05-17 02:37:03    分类:技术分享    kotlin   kotlin-interop

Passing a listener object as a function parameter in kotlin

问题 我正在尝试将侦听器从动作传递给类(适配器)。 在 java 中(来自动作的代码): private void setListeners() { adapterRecyclerView.setListener( new View.OnClickListener() { @Override public void onClick(View v) { SomeCodehere.... } }); } (来自适配器的代码) public void setListener(View.OnClickListener listener) { this.listener = listener; } 有用。 现在我正在尝试翻译为 kotlin。 我首先翻译动作(将动作翻译成 kotlin): private fun setListeners() { // !! is not fine i know adapterRecyclerView!!.setListener { v -> SomeCodehere.... } } 在这一点上仍然有效。 适配器的代码仍在 java 中,类的代码在 kotlin 中。 现在我将适配器翻译成 kotlin: fun setListener(listener: View.OnClickListener) { this.listener = listener }

2022-05-17 02:33:04    分类:技术分享    kotlin   kotlin-interop