我正在按照这篇文章收集 UI 中的流量。但我无法解析代码中的repeatOnLifeCycle API。不过,我添加了以下依赖项。
lifecycle:lifecycle-runtime-ktx:2.4.0-alpha03
Run Code Online (Sandbox Code Playgroud)
请帮忙
我正在尝试使用架构组件中的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
我对使用Android KTX和Anko的优点和缺点感到有些困惑.因为两个库都试图实现相同的最终目标,并且它们之间的界限变得有点模糊,在某些情况下,两个库中都可以使用相同的功能.
如果您帮助我澄清每个人的任务及其使用案例,我将非常感激.
提前致谢!
最近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同样奇怪的行为适用
像往常一样,玩Android Studio几小时后(使用diff lib版本和无效缓存),事情就恢复了正常.样式问题不再有效.com.google.android.material:material:1.0.0于beta01我能够使用MaterialComponents-styles的地方,并且在发布版本中Android Studio无法解决它们.
Soooo,问题是:
做了什么?我们是否有任何描述所有相关变化的最新文档?
文件说:
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 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/Kotlin/KTX 上完成这个 Udacity 课程。“关于我”应用程序引入了数据绑定,而 Android 团队似乎不建议使用 KTX 绑定。所以我想做前者而不是后者。
然而,事情并没有像预期的那样发展。这些是我面临的奇怪问题:
R.id.viewNameID。打字R.id.会给我各种选项,例如R.id.action_bar,但我的活动中没有。在某些时候,这清除了。lateinit var binding: ActivityMainBinding)。实际上,我认为它需要不止一次构建,可能是因为我在其他地方乱搞(见下文)而得到修复。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
我正在尝试使用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) 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) 当我将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 ×10
android-ktx ×10
kotlin ×6
androidx ×4
android-architecture-components ×1
anko ×1
gradle ×1
kotlin-flow ×1