标签: android-ktx

无法解析Android中的符号repeatOnLifecycle

我正在按照这篇文章收集 UI 中的流量。但我无法解析代码中的repeatOnLifeCycle API。不过,我添加了以下依赖项。

lifecycle:lifecycle-runtime-ktx:2.4.0-alpha03
Run Code Online (Sandbox Code Playgroud)

请帮忙在此输入图像描述

android kotlin-extension android-ktx androidx kotlin-flow

21
推荐指数
3
解决办法
9682
查看次数

更新到WorkManager 1.0.0-alpha09后编译错误

我正在尝试使用架构组件中的WorkManager.我已将compileSdkVersion和targetSdkVersion从27升级到28. gradle sync已成功完成.但是构建时错误不断涌现.由于'android.support:design',android.support库使用的是版本28.0.0-rc02.

我试图添加packagingOptions以排除'proguard/androidx-annotations.pro'.但它没有帮助.但是这次我得到了一个不同的错误信息:

Program type already present: com.google.common.util.concurrent.ListenableFuture
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚出了什么问题.

的build.gradle:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply plugin: 'io.fabric'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.apps.test"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 5
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

    signingConfigs {
        release
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release

            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            resValue "bool", "enableFirebase", "true"

        }
        debug {
            minifyEnabled false
            resValue "bool", "enableFirebase", "false"

        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-architecture-components android-ktx android-workmanager

18
推荐指数
1
解决办法
3704
查看次数

Android KTX或Anko

我对使用Android KTXAnko的优点和缺点感到有些困惑.因为两个库都试图实现相同的最终目标,并且它们之间的界限变得有点模糊,在某些情况下,两个库中都可以使用相同的功能.

如果您帮助我澄清每个人的任务及其使用案例,我将非常感激.

提前致谢!

android anko kotlin-extension android-ktx

11
推荐指数
1
解决办法
2129
查看次数

androidx.core:core-ktx:1.0.0小部件包丢失了

最近Android团队(主要是那些家伙)已经介绍过了androidx.core:core-ktx:1.0.0.我把它添加到我的项目中:

implementation 'androidx.core:core-ktx:1.0.0'
Run Code Online (Sandbox Code Playgroud)

尽管时间很短,但一切看起来都很酷 - 我找不到toast()方法.经过几分钟的研究后,我发现androidx.core.widgetktx lib中不再存在包.在Changelog文件中没有提到它.这有点奇怪,因为它在androidx.core:core-ktx:1.0.0-alpha1版本中.

BTW同样奇怪的行为适用com.google.android.material:material:1.0.0beta01我能够使用MaterialComponents-styles的地方,并且在发布版本中Android Studio无法解决它们. 像往常一样,玩Android Studio几小时后(使用diff lib版本和无效缓存),事情就恢复了正常.样式问题不再有效.

Soooo,问题是:

做了什么?我们是否有任何描述所有相关变化的最新文档?

android kotlin android-ktx androidx

11
推荐指数
1
解决办法
939
查看次数

Android的Kotlin扩展:如何使用bundleOf

文件说:

fun bundleOf(vararg pairs: Pair<String, Any?>): Bundle
Run Code Online (Sandbox Code Playgroud)

返回一个新的Bundle,其中给定的键/值对作为元素.

我试过了:

   val bundle = bundleOf {
       Pair("KEY_PRICE", 50.0)
       Pair("KEY_IS_FROZEN", false)
   }
Run Code Online (Sandbox Code Playgroud)

但它显示错误.

android kotlin android-bundle android-ktx

9
推荐指数
3
解决办法
1878
查看次数

KTX吐司扩展功能在哪里?

我从这篇文章中了解到使用 Android KTX 进行更甜蜜的 Android 开发(https://www.kotlindevelopment.com/even-sweeter-android-ktx-kotlin/)可以使用 KTX 简化 Android Toast

Toast.makeText(context, R.string.toast_message, Toast.LENGTH_SHORT).show()
Run Code Online (Sandbox Code Playgroud)

toast(R.string.toast_message)
Run Code Online (Sandbox Code Playgroud)

我想在我的项目中尝试它,但在androidx.core:core-ktx:1.0.0. 那么这个扩展函数在哪个依赖中呢?

android android-ktx

7
推荐指数
2
解决办法
2464
查看次数

使用 Android 数据绑定时禁用 Kotlin 合成绑定

我正在Android/Kotlin/KTX 上完成这个 Udacity 课程。“关于我”应用程序引入了数据绑定,而 Android 团队似乎不建议使用 KTX 绑定。所以我想做前者而不是后者。

然而,事情并没有像预期的那样发展。这些是我面临的奇怪问题:

  1. 在我第一次通过时,我无法让 Android Studio 识别我的任何R.id.viewNameID。打字R.id.会给我各种选项,例如R.id.action_bar,但我的活动中没有。在某些时候,这清除了。
  2. 编辑器抱怨数据绑定类的未解析引用,直到我构建了这个东西(例如lateinit var binding: ActivityMainBinding)。实际上,我认为它需要不止一次构建,可能是因为我在其他地方乱搞(见下文)而得到修复。
  3. 每个视图 ID 仍在生成为包含该 ID 的视图对象的全局变量。也就是说,如果我有一个带有 ID 的按钮doneButton,我可以在代码中将它作为合成引用,doneButton只需导入它即可。我认为这意味着对象总是在运行时构建的,即使我不打算使用它们。如何让这些 KTX 风格的绑定消失?

这是我的构建gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.3.31'
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-databinding android-ktx android-jetpack

7
推荐指数
1
解决办法
1183
查看次数

Androidx错误膨胀视图

我正在尝试使用Androidx.该应用程序非常新,因此代码不多.我确实在android studio中使用了"Refactor to Androidx"选项.但在那之后的某个时候,它停止了工作.我不知道是什么让它停止工作.

我应该做些什么?

但它得到了这个错误

Error inflating class androidx.constraintlayout.widget.ConstraintLayout
Run Code Online (Sandbox Code Playgroud)

主要活动

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        pick_image.setOnClickListener {
            toast("Pick image clicked")
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/pick_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:text="Pick image"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

build.gradle(app)

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.alvarlagerlof.blurr"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1 …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-ktx android-jetpack androidx

6
推荐指数
2
解决办法
2384
查看次数

Androidx活动OnBackPressedCallback接口问题

implementation("androidx.core:core-ktx:1.1.0-alpha04")
implementation ("androidx.appcompat:appcompat:1.0.2")
implementation ("androidx.activity:activity-ktx:1.0.0-alpha05")
Run Code Online (Sandbox Code Playgroud)

我也在看这个为什么他们的2个不同的ComponentActivity类? 我有此库设置,希望使用OnBackPressedCallback

import android.os.Bundle
import androidx.activity.OnBackPressedCallback
import androidx.fragment.app.Fragment

open class BaseNiceFragment : Fragment(), OnBackPressedCallback {

    override fun handleOnBackPressed(): Boolean {
       // do some nice things here
       return true
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
       super.onActivityCreated(savedInstanceState)
       activity!!.addOnBackPressedCallback(viewLifecycleOwner, this)
    }

    override fun onDestroyView() {
       super.onDestroyView()
       activity!!.removeOnBackPressedCallback(this)
    }

    protected open fun handleEmptyView(isListEmpty: Boolean) {} 
}
Run Code Online (Sandbox Code Playgroud)

它可以与Android Studio的调试版本配合使用,但是每当我尝试执行时app:compileFullReleaseKotlin,我都会遇到以下问题

BaseNiceFragment.kt: (_, _): Unresolved reference: OnBackPressedCallback
Run Code Online (Sandbox Code Playgroud)

任何人或Ian都知道如何确保将其包含在我的所有版本中

public interface OnBackPressedCallback {
 //...
}
Run Code Online (Sandbox Code Playgroud)

android android-activity android-ktx androidx

6
推荐指数
1
解决办法
2861
查看次数

添加核心ktx后,Gradle构建失败

当我将core-ktx依赖项添加到我的应用程序的build.gradle文件时,我的gradle构建失败并显示错误消息AAPT2 error: check logs for details 它还告诉我缺少两个属性values.xml.此文件位于我的用户目录中的.gradle文件夹下.
当我添加android.enableAAPT2=false到我的项目属性时,由于该选项被弃用,构建失败,所以我想避免这种情况.
两者的错误描述resource not found errors如下:

错误:找不到资源android:attr/fontVariationSettings.消息{kind = ERROR,text = error:资源android:attr/fontVariationSettings not found.,sources = [C:\ Users\Marc.gradle\_caches\transforms-1\files-1.1\appcompat-v7-26.1.0. aar\b6d4f8d4d33639ae469eaec181e24176\res\values\values.xml],原始消息=,工具名称= Optional.of(AAPT)}

当我添加不同的ktx库时,一切都很好.它构建正确,我甚至可以导入androidx.collections!如何添加core-ktx库而不出现任何错误?

项目

android gradle kotlin android-ktx

4
推荐指数
1
解决办法
1270
查看次数