标签: androidx

androidx.legacy:legacy-support-v4: 依赖有什么用

我正在实施 Android Room 数据库,在其中一个教程中我发现了androidx.legacy:legacy-support-v4:1.0.0依赖项的用法。任何人都可以告诉我如何使用这种依赖项。

android android-room android-jetpack androidx

33
推荐指数
2
解决办法
2万
查看次数

无法访问“androidx.lifecycle.HasDefaultViewModelProviderFactory”,它是“FavoriteBottomDialogFragment”的超类型。检查您的模块类别

我在扩展BottomSheetDialogFragment的整个类中出错

Cannot access 'androidx.lifecycle.HasDefaultViewModelProviderFactory' which is a supertype of 'FavoriteBottomDialogFragment'. Check your module classpath for missing or conflicting dependencies
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

在此处输入图片说明

该类位于 app 模块中,该模块实现了另外两个模块:core 和presentation-core

构建.gradle

dependencies {

     implementation fileTree(dir: 'libs', include: ['*.jar'])
     implementation project (':core')
     implementation project (':presentation-core')

     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41"
     implementation 'androidx.appcompat:appcompat:1.1.0'
     implementation 'androidx.core:core-ktx:1.2.0'
     testImplementation 'junit:junit:4.12'
     implementation "com.google.android.material:material:1.1.0"

     //Rx
     implementation "io.reactivex.rxjava2:rxandroid:2.1.1"
     implementation "io.reactivex.rxjava2:rxjava:2.2.9"
     //Architecture component
     implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
     implementation 'androidx.room:room-runtime:2.0.0'
     kapt 'androidx.room:room-compiler:2.0.0'
     kapt 'androidx.lifecycle:lifecycle-common-java8:2.0.0'
     implementation 'androidx.room:room-rxjava2:2.0.0'
     implementation 'androidx.room:room-guava:2.0.0'

     implementation 'androidx.recyclerview:recyclerview:1.1.0'
     implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

     androidTestImplementation 'androidx.test.ext:junit:1.1.1'
 }
Run Code Online (Sandbox Code Playgroud)

核心依赖

dependencies {
     api fileTree(dir: 'libs', include: …
Run Code Online (Sandbox Code Playgroud)

dependencies android classpath bottom-sheet androidx

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

如何在AndroidX中的布局XML中添加cardview

如何在AndroidX中的布局XML中添加cardview

升级到AndroidX之后

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp">
Run Code Online (Sandbox Code Playgroud)

给出一个错误

找不到以下类:-android.support.v7.widget.CardView(修复构建路径,编辑XML,创建类)

dependencies {

    implementation 'androidx.appcompat:appcompat:1.0.0'

    implementation 'androidx.cardview:cardview:1.0.0'
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在AndroidX下的xml中使用CardView

谢谢

android android-appcompat android-cardview material-components-android androidx

32
推荐指数
6
解决办法
4万
查看次数

androidx和com.android.support之间的区别

当我注意到我可以使用两种不同的依赖项时,我正打算在项目中使用约束布局:

  • com.android.support.constraint:constraint-layout
  • androidx.constraintlayout:constraintlayout

这两者之间是否存在差异或哪些建议更可取?

编辑

谷歌正在停止支持com.android.support并提示用户迁移到新的androidx等价物.

注意:随着Android 9.0(API级别28)的发布,有一个名为AndroidX的支持库的新版本,它是Jetpack的一部分.AndroidX库包含现有的支持库,还包括最新的Jetpack组件.

您可以继续使用支持库.历史工件(那些版本为27及更早版本,打包为android.support.*)将继续在Google Maven上提供.但是,所有新的库开发都将在AndroidX库中进行.

我们建议在所有新项目中使用AndroidX库.您还应该考虑将现有项目迁移到AndroidX.

这是官方的迁移指南和相应的库等价物.

android android-support-library androidx

29
推荐指数
3
解决办法
1万
查看次数

Android FAB按钮图标始终为黑色,带有MaterialComponents主题

我正在创建一个Android应用程序,我正在使用AndroidX库和Material设计主题.我的应用主题styles.xml是:

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我从库中有以下FAB按钮:

<com.leinardi.android.speeddial.SpeedDialView
        android:id="@+id/work_log_fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        app:layout_behavior="@string/speeddial_scrolling_view_snackbar_behavior"
        app:sdMainFabClosedSrc="@drawable/ic_add_white_24dp"
        app:sdOverlayLayout="@id/overlay" />
Run Code Online (Sandbox Code Playgroud)

并尝试了默认的FAB:

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:src="@drawable/ic_add_white_24dp"
        android:layout_margin="16dp" />
Run Code Online (Sandbox Code Playgroud)

没有图标的颜色(矢量可绘制),FAB内的图标(来自库和默认图标)总是黑色.我已经将问题缩小到材料设计主题,因为使用旧的Theme.AppCompat.Light.DarkActionBar而不是新Theme.MaterialComponents.Light.DarkActionBar的FAB内的图标获得原始矢量drawable的颜色.

有谁知道为什么会发生这种情况以及如何解决这个问题?

android android-theme material-design floating-action-button androidx

29
推荐指数
5
解决办法
4323
查看次数

升级到gradle 5.0后,Android数据绑定“虽然已注册但缺少导入表达式”

我将Android Studio升级到3.4之后,将Android Gradle插件升级到3.4并升级到5.1.1

我收到如下数据绑定错误

我确保已清理项目并进行重建,已清除缓存并重新启动了AS。

升级之前从未发生过此问题

我可以确认这是因为新的gradle更新

DataBinderMapperImpl.java:54:错误:找不到符号

e:[kapt]发生异常:android.databinding.tool.util.LoggedErrorException:发现数据绑定错误。**** /数据绑定错误**** msg:尽管已注册导入表达式,但缺少

我找到了解决方案:解决方案:

  1. 现在已发布3.4.1,请使用3.4.1
  2. 删除布局XML中的所有导入类型
  3. 从布局XML的导入类型中删除所有字符串
  4. 从布局XML的导入类型中删除所有整数

android android-gradle-plugin android-databinding androidx

28
推荐指数
1
解决办法
3339
查看次数

程序类型已存在:android.support.v4.os.ResultReceiver $ MyResultReceiver

我正在重构一个使用androidx的应用程序.我一直在努力摆脱所有不支持它的库.我以为我已经删除了所有使用支持库的库,但看起来仍然有一些东西正在导入它.我现在得到错误:

AGPBI: {"kind":"error","text":"Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver","sources":[{}],"tool":"D8"} java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/532, /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/0.jar, /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/1.jar,

...

/Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/530.jar, /Users/name/myproject/app/build/intermediates/transforms/dexBuilder/debug/531.jar Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes. Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver at sun.reflect.GeneratedConstructorAccessor377.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593) at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677) ... at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:745) Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes. Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1431) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at …

refactoring android androidx

27
推荐指数
3
解决办法
3万
查看次数

无法解析变量'$ {project.groupId}'

我将项目迁移到AndroidX,在构建项目时遇到了这些错误:

[TAG] Failed to resolve variable '${project.groupId}'   
[TAG] Failed to resolve variable '${project.version}'   
[TAG] Failed to resolve variable '${project.groupId}'   
[TAG] Failed to resolve variable '${project.version}'   
[TAG] Failed to resolve variable '${project.groupId}'   
[TAG] Failed to resolve variable '${project.version}'   
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几种可能的解决方

  • 清洁项目
  • 使缓存无效并重新启动
  • 设为enableJetifierfalse
  • 添加--refresh-dependencies编译器设置选项

这是我的项目gradle文件:

buildscript {
    repositories {
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        google()
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        classpath 'com.google.gms:google-services:4.0.0'
        classpath 'io.fabric.tools:gradle:1.25.4'
    }
}

allprojects { …
Run Code Online (Sandbox Code Playgroud)

android dagger android-gradle-plugin androidx

27
推荐指数
3
解决办法
1万
查看次数

在 build.gradle 文件中添加 buildFeatures 时出错

我正在尝试 compose,这是 Andorid jetpack 中的一项新功能。下面是我的代码。我在 app 的 build.gradle 文件中添加 buildfeatures,而不是在根文件夹中。

android {
    compileSdkVersion compileSDKVer
    buildToolsVersion buildToolsVer
    defaultConfig {
        applicationId "com.sample.slothyhacker.jetpackcompose"
        minSdkVersion minSdkVer
        targetSdkVersion targetSdkVer
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    buildFeatures {
        // Enables Jetpack Compose for this module
        //compose true
    }

    compileOptions {
        // Set both the Java and Kotlin compilers to target Java 8.
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
} …
Run Code Online (Sandbox Code Playgroud)

user-interface android androidx android-jetpack-compose

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

如何从 Jetpack compose 中的 drawable 加载图像?

我试过下面的代码,但它在 UI 中没有反映任何东西,我在这里遗漏了什么?

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            loadUi()
        }
    }

    @Composable
    fun loadUi() {
        CraneWrapper {
            MaterialTheme {
                Image(
                    (ResourcesCompat.getDrawable(
                        resources,
                        R.mipmap.ic_launcher,
                        null
                    ) as BitmapDrawable).bitmap
                )
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

android image androidx android-jetpack-compose

26
推荐指数
5
解决办法
2万
查看次数