问题标签 [androidx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - DrawerLayout 卡在滑动上
我正在玩 DrawerLayout,但遇到了问题。基本上有时当我从屏幕边缘滑动时,DrawerLayout 会卡住,直到我将手指从屏幕上抬起(见下面的截图)
我不确定发生了什么,我完全遵循了 google sdk 中的代码示例。有任何想法吗?
这是我的 FragmentActivity 中唯一的东西:
编辑:我正在为此添加赏金,因为这是一个非常古老的问题,即使在今天,最新的 Android-X 也存在(此处提供示例)。这是它的外观:
我已经向谷歌报告了这件事(在这里,后来又在这里),但它没有帮助。
我已经在这个线程上尝试了所有现有的解决方案,但没有一个有效。如果有人对此有很好的解决方法(同时仍在使用 DrawerLayout 或扩展它,或类似的东西),请提出一个可行的解决方案。
android - 是否还有其他 app:layout_behavior 预定义值?
在我看到的设计支持库帖子app:layout_behavior="@string/appbar_scrolling_view_behavior"
中。
它AppBarLayout
不会与它下面的内容重叠。即使我的string.xml
.
是否有任何其他预定义行为以及何时将其放入字符串文件?
android - JUnitTest 中的 MutableLiveData 为空
我想写一个单元测试。因此我需要 MutableLiveData。我从一个非常基本的设置测试开始,但我无法实例化 MutableLiveData 对象。运行测试时,我总是为空。我必须嘲笑什么吗?有什么建议么?
构建.gradle
android - 未找到依赖项“androidx.core:core-ui”
将约束布局组添加到我的项目时,Android Studio 会在 gradle 中自动添加依赖项:
实现'androidx.core:core-ui:+'
但我收到了这个错误信息:
无法解决:androidx.core:core-ui:+
我找不到任何方法来添加相应的 androidx 依赖项,到目前为止我知道的唯一解决方案是使用支持 lib,但它违反了将所有内容移至 androidx 的指导方针。
com.android.support:support-core-ui:28.0.0
是否有任何包含 ConstraintLayout 组的 android 依赖项?
android - androidx 和 com.android.support 之间的区别
当我注意到我可以使用两个不同的依赖项时,我正要在我的项目中使用约束布局:
com.android.support.constraint:constraint-layout
androidx.constraintlayout:constraintlayout
这两者之间是否有区别或一些建议更可取?
编辑
Google 将停止支持com.android.support
并提示用户迁移到新的androidx
等效版本。
注意:随着 Android 9.0(API 级别 28)的发布,有一个名为 AndroidX 的支持库的新版本,它是 Jetpack 的一部分。AndroidX 库包含现有的支持库,还包含最新的 Jetpack 组件。
您可以继续使用支持库。历史工件(那些版本为 27 及更早版本,并打包为 android.support.*)仍将在 Google Maven 上可用。但是,所有新库的开发都将在 AndroidX 库中进行。
我们建议在所有新项目中使用 AndroidX 库。您还应该考虑将现有项目迁移到 AndroidX。
这是官方迁移指南和相应的库等价物。
java - ClassNotFoundException:在 androidx 迁移后找不到类“android.support.v4.content.FileProvider”
我正在尝试迁移到 androidx。我在 Android Studio 中使用了迁移工具。当我这样做时,我在运行我的应用程序时得到以下堆栈跟踪。
例外是正确的。android.support.v4.content.FileProvider 在我的应用程序中不存在。但是 androidx.core.content.FileProvider 包含在我的应用程序中。最大的问题是它为什么要加载旧版本的 FileProvider?
android - 迁移到 androidX 后,Retrofit 界面中的 Kapt NonExistentClass 异常
我正在使用Retrofit
,Dagger
和Glide
我的应用程序。迁移到 后androidX
,kapt
与 Dagger 和 Glide 注释处理器完美配合。项目构建和同步成功,但是,当我运行应用程序时,我在我的 ApiService 接口中得到 Kotlin 编译器异常,我在其中使用 Retrofit 注释
ApiService.kt
构建.gradle
例外:
NonExistentClass 无法转换为注解 @error.NonExistentClass()
我尝试根据文档使用它
但这导致了另一个例外
java.lang.ClassCastException:com.sun.tools.javac.code.Type$ErrorType 无法转换为 com.sun.tools.javac.code.Type$ArrayType
我认为,第一个异常发生是因为在使用 kapt 插件更新 gradle 和 android studio 后,它突然开始使用 NonExistentClass 声明未知的 Retrofit Java 注释(没有任何用于改造的 kapt 或 annotationProcessor,正如你在 build.gradle 中看到的那样) . 我不知道第二个错误是什么意思。
android-studio - 构建失败:无法处理 jetified-Android Jetpack
我正在将现有项目迁移到 AndroidX,以使用 Android Jetpack。
每次项目尝试构建时,都会出现以下错误之一:
(这个列表可能更长,这取决于我尝试了多少构建。)
完整错误:
已经完成了:
- 删除 .gradle/caches 中的所有文件
- 重建/清理项目
- 整天在 Google/Reddit/StackOverflow 上搜索
gradle.properties:
顶级构建文件依赖项:
模块依赖:
android - 程序类型已存在:android.support.v4.os.ResultReceiver$MyResultReceiver
我正在重构一个应用程序以使用 androidx。我一直在努力摆脱所有不支持它的库。我以为我已经删除了所有使用支持库的库,但看起来仍然有一些东西正在导入它。我现在得到错误:
AGPBI: {"kind":"error","text":"程序类型已经存在:android.support.v4.os.ResultReceiver$MyResultReceiver","sources":[{}],"tool":"D8" java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: 合并 dex 档案时出错:/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 了解如何解决https://developer.android.com/studio/build/dependencies#duplicate_classes的问题 . 程序类型已经存在: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) 在 org.gradle.internal.concurrent。 https://developer.android.com/studio/build/dependencies#duplicate_classes。程序类型已经存在: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) 在 java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) 在 java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) 在 java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread .java:157) 在https://developer.android.com/studio/build/dependencies#duplicate_classes了解如何解决问题 . 程序类型已存在:com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:129) 上的 android.support.v4.os.ResultReceiver$MyResultReceiver com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger. java:114) 在 com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:101) 在 com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:36)在 java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424) ... com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:71) 还有 4 个。 com.android 上的 tools.r8.utils.ExceptionUtils.withD8CompilationHandler(ExceptionUtils.java:41)。tools.r8.D8.run(D8.java:89) at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:112) ... com.android.tools.r8.utils.Reporter 还有 7 个.failIfPendingErrors(Reporter.java:83) 在 com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:62) 在 com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:62 ) ... 10 更多 :app:transformDexArchiveWithDexMergerForDebug FAILED FAILURE: 构建失败并出现异常。* 出了什么问题:任务 ':app:transformDexArchiveWithDexMergerForDebug' 执行失败。Reporter.fatalError(Reporter.java:62) at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:62) ... 10 更多:app:transformDexArchiveWithDexMergerForDebug FAILED FAILURE:构建失败并出现异常。* 出了什么问题:任务 ':app:transformDexArchiveWithDexMergerForDebug' 执行失败。Reporter.fatalError(Reporter.java:62) at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:62) ... 10 更多:app:transformDexArchiveWithDexMergerForDebug FAILED FAILURE:构建失败并出现异常。* 出了什么问题:任务 ':app:transformDexArchiveWithDexMergerForDebug' 执行失败。
com.android.build.api.transform.TransformException:java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:合并dex档案时出错:/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 了解如何解决https://developer.android.com/studio/build/dependencies#duplicate_classes的问题 。程序类型已存在:android.support.v4.os.ResultReceiver$MyResultReceiver
跑步./gradlew androidDependencies
,我得到:
问题是:除了检查以下内容之外,我有没有办法知道哪个依赖项正在导入支持库build.gradle
: