问题标签 [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.

0 投票
1 回答
2693 浏览

react-native - React Native:如何禁用 jetifier

我运行以下命令行

这使得jetifier启用。我怎样才能禁用它?

0 投票
0 回答
91 浏览

android - 查找使用 Android Studio 打包的 jetifier 版本

我正在尝试使用与 Android Studio 一起打包的 Jetifier,将少数 3rd 方库转换为其 AndroidX 兼容版本。

我需要知道哪个版本的 Jetifier 与我的 Android Studio(v 3.5.2) 打包在一起。有没有哪个版本的 Jetifier 与哪个版本的 Android Studio 或 gradle 版本捆绑的映射的链接?

0 投票
1 回答
55 浏览

node.js - 在窗口中运行 React Native

我是 react native 的新手,最近我开始安装它,但一步我遇到了问题:

不幸的是,这需要很长时间,而且似乎根本不起作用。问题是什么 ??

0 投票
0 回答
524 浏览

android - 无法转换工件 'kotlin-android-extensions.jar

启用jetifier后出现以下错误

JetifyTransform 执行失败:/Users/balwinder/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-android-extensions/1.3.20/b1016507a951b0cfaae431079ec0ac6847d56d8c/kotlin-android-extensions-1.3.20 。罐。

依赖项.

版本

0 投票
0 回答
704 浏览

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

0 投票
1 回答
2885 浏览

android - AndroidX Jetifier 无法/未能转换仍然使用支持库的 3rd-party 传递依赖项

我最近迁移了我的项目以使用AndroidX

在我迁移到AndroidX后,我的应用程序崩溃了,因为库仍在使用Support Library。这是我的第 3 方依赖项/库的列表,它未能转换为AndroidX

  1. com.clevertap.android:clevertap-android-sdk:3.4.2
  2. com.readystatesoftware.chuck:library:1.1.0
  3. com.ncapdevi:frag-nav:2.4.0
  4. jp.wasabeef:recyclerview-animators:2.3.0
  5. com.github.chivorns:smartmaterialspinner:1.1.6
  6. com.facebook.android:facebook-android-sdk:5.0.1
  7. com.github.PierfrancescoSoffritti:AndroidYouTubePlayer:7.0.1(我仍然无法将它升级到 10.xx,因为主要的 API 更改)
  8. com.github.nikartm:image-support:1.0.5

我的设置:

到目前为止我所做的:

  1. 使用Android StudioRefactor -> Migrate to AndroidX中的工具,但最终强制关闭它,因为需要很长时间
  2. android.enableJetifier=true&android.useAndroidX=true
  3. 使用 shell 脚本手动将支持库中的工件、类和导入映射到AndroidX,也感谢@Danlew感谢 @Danlew在 ADS '19 会谈中提到的这里
  4. 已经检查过我:app:dependencies的 3rd-party 依赖项已经迁移到使用AndroidX工件,但只有少数(上述依赖项列表失败)
  5. 删除./root_project/.idea./root_project/.gradle& ~/.gradle/caches(修复编译错误/IDE错误,参考:AndroidX迁移依赖/库
  6. 了解喷射器:什么是喷射器?官方安卓文档
  7. 做了一个解决方法来使用AndroidX注释处理器,比如:Glide & Dagger
  8. 检查aar 存在的库的~/.gradle目录,不幸的是,上面列出的 & 其他库失败了。jetified-*我的 <code>~/.gradle</code> 内容截图jetifiedclevertap

我的结论是,如果检测到支持库jetifier导入/类,则通过重写.class我们的第 3 方库的二进制文件,并将其分别修改(jetified/mapping)到AndroidX中。

但就我而言,上面列出的依赖项没有使用正确的 AndroidX导入并导致运行时崩溃,因为Support Library具有传递依赖项。

jetifier 目前是否也不支持 3rd-party 库中的传递依赖?但是,奇怪的是它适用于一些图书馆(上面未列出)

[更新 1]

与此同时(快速修复):

  1. 我确实一一详尽地下载了库的所有传递依赖项
  2. 使用jetifier-standalone命令代替库aar
  3. 手动将库aar及其依赖项添加到app/build.gradle.ktsasflatDirs

这真的是一种解决方法吗,我有什么更好的办法吗?

[更新 2]

我也使用了维护版本的卡盘。但也发现了同样的问题:

在检查了我的 3rd-party 库之后,我还最终手动添加了用于此库的aarafter :jetifier-standalone

  1. com.clevertap.android:clevertap-android-sdk:3.4.2
  2. com.github.nikartm:image-support:1.0.5

许多人还建议使用api而不是,implementation但对我来说,我不想让我的项目因传递依赖而变得臃肿

其他 SO中也推荐如下:

  1. 要么删除图书馆,
  2. fork 支持 androidx / 等待作者升级
  3. 手动使用jetifier-standalone这些特定库,并作为本地 aar 包含(这是我现在最好的方法)

除非jetifier能够在官方文档中说明这一点,否则由于其限制:https ://developer.android.com/jetpack/androidx/releases/jetifier

似乎我们能做的最少,希望许多第 3 方作者能尽快升级到AndroidX

这是参考的奖励文章:

  1. 您可以使用can-i-drop-jetifier库来检测您的库(传递地)是否需要启用 jetifier
  2. 使用这些小步骤迁移到AndroidX的时机已经成熟
  3. 用AndroidX更好的结构打包,一路走来也很头疼
0 投票
0 回答
966 浏览

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 运行以获取更多详细信息。)

0 投票
1 回答
151 浏览

android - Android Jet Pack Jetifier:原因:无效的文字/长度设置

我无法构建 APK。这开始发生在我从 Windows 10 降级到 Windows 7 到现在只有一个项目上。其他项目运行良好。我尝试多次更改 Gradle 类路径版本。我也更改了 Gradle 包装器版本。

每次我得到以下输出:

原因:无效的文字/长度设置。

我还在问题跟踪器中附加了两个带有 stacktrace 文件的 build.gradle 文件:

Google 问题跟踪器:我的问题

日志开头是:无法转换 transport-runtime-2.2.1.aar 等。我无法在 Google 上找到此错误。


更多的:

有时还会产生以下情况:

无法加载类“butterknife.OnCheckedChanged”。此意外错误的可能原因包括:Gradle 的依赖项缓存可能已损坏(有时会在网络连接超时后发生。)重新下载依赖项并同步项目(需要网络)

Gradle 构建过程(守护进程)的状态可能已损坏。停止所有 Gradle 守护程序可能会解决此问题。停止 Gradle 构建过程(需要重新启动)

您的项目可能正在使用与项目中的其他插件或项目请求的 Gradle 版本不兼容的第三方插件。

在 Gradle 进程损坏的情况下,您还可以尝试关闭 IDE,然后杀死所有 Java 进程。

我尝试使用上面提供的链接停止 gradle 构建并重新下载依赖项,但没有任何效果。

我还卸载并重新安装了 Android Studio。那也没有用。


我已经删除了黄油刀库,但是构建中有更多的错误集。请参阅上面的 Google 问题跟踪器帖子的链接。

0 投票
1 回答
8690 浏览

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'`

这个问题是否会在未来引起一些严重的问题。提前致谢 :)

0 投票
1 回答
259 浏览

android - enableJetifier 不适用于库项目

我的新 kotlin 项目默认使用 androidx,并android.useAndroidX=trueandroid.enableJetifier=true根项目的gradle.properties. 但它也依赖于使用库的模块support.v4库。

Jetifier 不应该自动将这些依赖项转换为 androidx 吗?为什么我仍然收到此错误: