问题标签 [android-jetifier]
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.
react-native - React Native:如何禁用 jetifier
我运行以下命令行
这使得jetifier
启用。我怎样才能禁用它?
android - 查找使用 Android Studio 打包的 jetifier 版本
我正在尝试使用与 Android Studio 一起打包的 Jetifier,将少数 3rd 方库转换为其 AndroidX 兼容版本。
我需要知道哪个版本的 Jetifier 与我的 Android Studio(v 3.5.2) 打包在一起。有没有哪个版本的 Jetifier 与哪个版本的 Android Studio 或 gradle 版本捆绑的映射的链接?
node.js - 在窗口中运行 React Native
我是 react native 的新手,最近我开始安装它,但一步我遇到了问题:
不幸的是,这需要很长时间,而且似乎根本不起作用。问题是什么 ??
android-support-library - 有没有办法在旧项目中使用 androidX 库(如 Firebase Crashlytics)而不将项目迁移到 androidX?
强调文本我需要在项目中使用 firebase Crashlytics 但不想将项目迁移到 android。我想知道是否可能。
如何在未迁移到 Androidx 的项目中使用 Androidx 库:- 与此类似
在 gradle 中添加了对 firebase Crashlytics 的依赖导致 brlow 错误:属性 application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22 :18-91 也存在于 [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory)。建议:将 'tools:replace="android:appComponentFactory"' 添加到 AndroidManifest.xml:15:5-468:19 的元素以覆盖。
25/05/2021 更新:找不到任何方法,将整个项目转换为 androidX
android - AndroidX Jetifier 无法/未能转换仍然使用支持库的 3rd-party 传递依赖项
我最近迁移了我的项目以使用AndroidX
在我迁移到AndroidX后,我的应用程序崩溃了,因为库仍在使用Support Library。这是我的第 3 方依赖项/库的列表,它未能转换为AndroidX:
com.clevertap.android:clevertap-android-sdk:3.4.2
com.readystatesoftware.chuck:library:1.1.0
com.ncapdevi:frag-nav:2.4.0
jp.wasabeef:recyclerview-animators:2.3.0
com.github.chivorns:smartmaterialspinner:1.1.6
com.facebook.android:facebook-android-sdk:5.0.1
com.github.PierfrancescoSoffritti:AndroidYouTubePlayer:7.0.1
(我仍然无法将它升级到 10.xx,因为主要的 API 更改)com.github.nikartm:image-support:1.0.5
我的设置:
到目前为止我所做的:
- 使用Android Studio
Refactor -> Migrate to AndroidX
中的工具,但最终强制关闭它,因为需要很长时间 android.enableJetifier=true
&android.useAndroidX=true
- 使用 shell 脚本手动将支持库中的工件、类和导入映射到AndroidX,也感谢@Danlew感谢 @Danlew在 ADS '19 会谈中提到的这里
- 已经检查过我
:app:dependencies
的 3rd-party 依赖项已经迁移到使用AndroidX工件,但只有少数(上述依赖项列表失败) - 删除
./root_project/.idea
,./root_project/.gradle
&~/.gradle/caches
(修复编译错误/IDE错误,参考:AndroidX迁移依赖/库 - 了解喷射器:什么是喷射器?和官方安卓文档
- 做了一个解决方法来使用AndroidX注释处理器,比如:Glide & Dagger
- 检查aar 存在的库的
~/.gradle
目录,不幸的是,上面列出的 & 其他库失败了。jetified-*
jetified
clevertap
我的结论是,如果检测到支持库jetifier
导入/类,则通过重写.class
我们的第 3 方库的二进制文件,并将其分别修改(jetified/mapping)到AndroidX中。
但就我而言,上面列出的依赖项没有使用正确的 AndroidX导入并导致运行时崩溃,因为Support Library具有传递依赖项。
jetifier 目前是否也不支持 3rd-party 库中的传递依赖?但是,奇怪的是它适用于一些图书馆(上面未列出)
[更新 1]
与此同时(快速修复):
- 我确实一一详尽地下载了库的所有传递依赖项
- 使用
jetifier-standalone
命令代替库aar
- 手动将库
aar
及其依赖项添加到app/build.gradle.kts
asflatDirs
这真的是一种解决方法吗,我有什么更好的办法吗?
[更新 2]
我也使用了维护版本的卡盘。但也发现了同样的问题:
在检查了我的 3rd-party 库之后,我还最终手动添加了用于此库的aar
after :jetifier-standalone
com.clevertap.android:clevertap-android-sdk:3.4.2
com.github.nikartm:image-support:1.0.5
许多人还建议使用api
而不是,implementation
但对我来说,我不想让我的项目因传递依赖而变得臃肿
在其他 SO中也推荐如下:
- 要么删除图书馆,
- fork 支持 androidx / 等待作者升级
- 手动使用
jetifier-standalone
这些特定库,并作为本地 aar 包含(这是我现在最好的方法)
除非jetifier
能够在官方文档中说明这一点,否则由于其限制:https ://developer.android.com/jetpack/androidx/releases/jetifier
似乎我们能做的最少,希望许多第 3 方作者能尽快升级到AndroidX。
这是参考的奖励文章:
android - 无法转换工件 xxx.aar
任务“:app:preDebugBuild”执行失败。
无法解析配置 ':app:debugCompileClasspath' 的所有文件。无法转换工件 'xxx.aar (project :xxx)' 以匹配属性 {artifactType=android-manifest} JetifyTransform 执行失败:G:\android studio e\ChainStore-ManagementApp\chainstore-managmentApp\xxx\xxx.aar。使用 Jetifier 转换 'G:\android studio e\ChainStore-ManagementApp\chainstore-managmentApp\xxx\xxx.aar' 失败。原因:5。(使用 --stacktrace 运行以获取更多详细信息。)
android - Android Jet Pack Jetifier:原因:无效的文字/长度设置
我无法构建 APK。这开始发生在我从 Windows 10 降级到 Windows 7 到现在只有一个项目上。其他项目运行良好。我尝试多次更改 Gradle 类路径版本。我也更改了 Gradle 包装器版本。
每次我得到以下输出:
原因:无效的文字/长度设置。
我还在问题跟踪器中附加了两个带有 stacktrace 文件的 build.gradle 文件:
日志开头是:无法转换 transport-runtime-2.2.1.aar 等。我无法在 Google 上找到此错误。
更多的:
有时还会产生以下情况:
无法加载类“butterknife.OnCheckedChanged”。此意外错误的可能原因包括:Gradle 的依赖项缓存可能已损坏(有时会在网络连接超时后发生。)重新下载依赖项并同步项目(需要网络)
Gradle 构建过程(守护进程)的状态可能已损坏。停止所有 Gradle 守护程序可能会解决此问题。停止 Gradle 构建过程(需要重新启动)
您的项目可能正在使用与项目中的其他插件或项目请求的 Gradle 版本不兼容的第三方插件。
在 Gradle 进程损坏的情况下,您还可以尝试关闭 IDE,然后杀死所有 Java 进程。
我尝试使用上面提供的链接停止 gradle 构建并重新下载依赖项,但没有任何效果。
我还卸载并重新安装了 Android Studio。那也没有用。
我已经删除了黄油刀库,但是构建中有更多的错误集。请参阅上面的 Google 问题跟踪器帖子的链接。
android - 包含对 AndroidX 和旧支持库的引用
将 Flutter版本升级到Flutter 1.22.0-2.0.pre.78 • channel master后,我收到以下警告:-
WARNING: [Processor] Library 'C:\Users....gradle\caches\modules-2\files-2.1\io.flutter\flutter_embedding_debug\1.0.0-b1d9f863db32cb1d6714cf75db4a992ee3765113\b8748b5192a2a0961f5c14f8845331ad5f2225a1\flutter_embedding_debug-1.0.0-b1d9f863db32cb1d6714cf75db4a992ee3765113.jar ' 包含对 AndroidX 和旧支持库的引用。这似乎图书馆已部分迁移。Jetifier 无论如何都会尝试重写库。androidX 参考示例:'androidx/annotation/VisibleForTesting' 支持库参考示例:'android/support/annotation/NonNull'`
这个问题是否会在未来引起一些严重的问题。提前致谢 :)
android - enableJetifier 不适用于库项目
我的新 kotlin 项目默认使用 androidx,并android.useAndroidX=true
在android.enableJetifier=true
根项目的gradle.properties
. 但它也依赖于使用库的模块support.v4
库。
Jetifier 不应该自动将这些依赖项转换为 androidx 吗?为什么我仍然收到此错误: