标签: android-jetifier

有没有办法在旧项目中使用 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 的元素以覆盖。

2021 年 5 月 25 日更新:找不到任何方法,将整个项目转换为 androidX

android-support-library firebase-crash-reporting androidx android-jetifier

7
推荐指数
0
解决办法
659
查看次数

Gradle-转换尚未执行

我刚刚将项目迁移到androidx并启用了jetifier。

现在,当我要构建项目时,出现以下错误:“尚未执行转换” Gradle同步完成,没有任何错误,但是构建失败。

该任务执行失败:

Transform org.eclipse.jdt.core.jar (org.eclipse.jdt:org.eclipse.jdt.core:3.10.0) with IdentityTransform
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪 :

java.lang.IllegalStateException: Transformation hasn't been executed yet
    at org.gradle.api.internal.artifacts.transform.TransformInfo.getFailure(TransformInfo.java:88)
    at org.gradle.api.internal.artifacts.transform.TransformInfo.access$300(TransformInfo.java:48)
    at org.gradle.api.internal.artifacts.transform.TransformInfo$ChainedTransformInfo$ChainedArtifactTransformStepOperation.run(TransformInfo.java:235)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.artifacts.transform.TransformInfo$ChainedTransformInfo.execute(TransformInfo.java:217)
    at org.gradle.api.internal.artifacts.transform.TransformInfoExecutor.execute(TransformInfoExecutor.java:34)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    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)
Run Code Online (Sandbox Code Playgroud)

我的工作站:

Build: 3.3 Canary 13
Android Gradle Plugin: 3.3.0-alpha13
Gradle: 4.10.1
BuildToolsVersion : 28.0.3
Compile/Targer sdkVersion : …
Run Code Online (Sandbox Code Playgroud)

gradle android-studio androidx android-jetifier

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

需要手动更新使用反射(例如注释处理器)的库以添加对 androidx 的支持

我已经通过使用 android studio 3.4 迁移到 androidX,迁移后我每次都面临这个问题。虽然我已经尝试在其中排除了 butterknife compilerAnnotation ,gradle.properties但这表明WARNING: The option setting 'android.jetifier.blacklist=butterknife.*\.jar' is experimental and unsupported.

我还更新了最新的 Butterknife 依赖项,其中 JakeWharton 本人提到该问题已解决,并且是喷气机问题。看看这个解决方法

implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
Run Code Online (Sandbox Code Playgroud)

在我的build.gradle文件中

    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
Run Code Online (Sandbox Code Playgroud)

所以我认为这个支持库会导致这个问题。我已经尝试了谷歌第一个搜索结果中的所有解决方案,但都无法解决。

这是我的 build.gradle 文件

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    mavenCentral()
    maven { url 'https://maven.fabric.io/public' }
}


android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.audacityit.selltec"
        minSdkVersion 19 …
Run Code Online (Sandbox Code Playgroud)

android butterknife androidx android-jetifier

6
推荐指数
0
解决办法
1979
查看次数

android-jetifier:“无法解决所有工件”;新项目上的“无法转换工件”

我正在尝试构建一个相对较新的项目。Gradle 同步良好,但每当我尝试构建时,都会收到如下错误:

Execution failed for task ':app:kaptGenerateStubsDebugKotlin'.
> Could not resolve all artifacts for configuration ':app:debugCompileClasspath'.
   > Failed to transform artifact 'common.jar (com.android.tools:common:26.4.0)' to match attributes {artifactType=android-classes, org.gradle.usage=java-runtime-jars}.
      > Execution failed for JetifyTransform: C:\Users\Dave\.gradle\caches\modules-2\files-2.1\com.android.tools\common\26.4.0\539939e284fba9fe343b890a6e21c9333767c886\common-26.4.0.jar.
         > Failed to transform 'C:\Users\Dave\.gradle\caches\modules-2\files-2.1\com.android.tools\common\26.4.0\539939e284fba9fe343b890a6e21c9333767c886\common-26.4.0.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'android.support.design.widget' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.. (Run with --stacktrace for …
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin kapt android-jetifier

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

避免 AndroidX Jetifier 日志垃圾邮件

我最近将我的应用程序迁移到了AndroidX,因此使用了 Jetifier 工具(目前是与 Android Gradle 插件版本捆绑的版本3.3.0-alpha10):

# gradle.properties
android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

它工作正常,但在我的应用程序的整个构建过程中添加了许多日志(对于它转换的每个库),如下所示,并使日志难以阅读。

它看起来像这样:

> Transform room-runtime.aar (androidx.room:room-runtime:2.0.0-rc01) with AarTransform
> Transform lifecycle-extensions.aar (androidx.lifecycle:lifecycle-extensions:2.0.0-rc01) with AarTransform
> Transform work-runtime.aar (android.arch.work:work-runtime:1.0.0-alpha08) with AarTransform
Run Code Online (Sandbox Code Playgroud)

有没有办法禁用/忽略/过滤这些日志?

android build android-gradle-plugin androidx android-jetifier

5
推荐指数
1
解决办法
448
查看次数

如何避免在每次 CI 运行时对 aar 依赖项运行 jetifier 转换

我们正在努力减少 jetifier 转换对我们的 CI 构建的影响。我们正在使用 AndroidX,我们升级了所有代码以使用 AndroidX 包。我们启用了 jetifier,因此我们使用的所有依赖项都会自动迁移。我们的构建在本地和 CI 上都运行良好。但是,由于切换到 AndroidX,我们的 CircleCI 构建需要大量时间,特别是 AAR 的转换。显然,在我们更新任何依赖项之前,jetifier 步骤是可以缓存的,因此不会每次都重复转换,但是我们很难做到这一点。

我们尝试app:assembleOurFlavorDebug在 CircleCI 缓存上运行之前保存,但转换仍然在每个构建上运行。save_cache 步骤保存/gradle目录并使用一些 .gradle 文件的内容作为哈希。我们观察了 2 个连续的构建,(相同的缓存哈希)并且两次我们都注意到 Jetifier 在所有 AAR 上运行

我们希望将 jetifier 转换的结果重新用于后续构建。

continuous-integration android circleci android-jetifier

5
推荐指数
0
解决办法
184
查看次数

为什么 gradlew assembleDebug 不运行 jetifier,而 react-native run-android 运行 jetifier?

我给自己定android.useAndroidX = trueandroid.enableJetifier = true上gradle.properties。但是当我跑步时,react-native run-android我看到:

info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
Jetifier found 1902 file(s) to forward-jetify. Using 4 workers...
Run Code Online (Sandbox Code Playgroud)

但是当我将 dir 更改为 android dir 并运行时./gradlew assembleDebug,我没有看到这样的事情。因此,我的构建在所有android.support.*导入库的地方都会中断。

> Task :react-native-app-auth:compileDebugJavaWithJavac FAILED
.../node_modules/react-native-app-auth/android/src/main/java/com/rnappauth/
RNAppAuthModule.java:10: error: package android.support.annotation does not exist
import android.support.annotation.Nullable;
                                 ^
.../node_modules/react-native-app-auth/android/src/main/java/com/rnappauth/RNAppAuthModule.java:11: error: cannot find symbol
import android.support.customtabs.CustomTabsCallback;
                                 ^
  symbol:   class CustomTabsCallback
  location: package android.support.customtabs
.../node_modules/react-native-app-auth/android/src/main/java/com/rnappauth/RNAppAuthModule.java:12: error: cannot find …
Run Code Online (Sandbox Code Playgroud)

android gradlew react-native android-jetifier

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

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

启用jetifier后出现以下错误

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

the given artifact contains a string literal with a package reference 'android.support.v4' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.. (Run with --stacktrace for more details.)
Run Code Online (Sandbox Code Playgroud)

依赖关系 .

版本

def versions = [
        gradlePlugin             : '3.5.1',
        multidex                 : '1.0.3',
        kotlin                   : '1.3.31',

        supportLibrary           : versionDependency.supportLibrary,
        archComp                 : versionDependency.supportLibrary,
        rxJava                   : versionDependency.rxJava,

        constraintLayout         : '1.1.3',

        dataBinding              : '3.1.0-alpha06',

        navigation               : '2.0.0',

        rxKotlin                 : '2.3.0', …
Run Code Online (Sandbox Code Playgroud)

android gradle kotlin build.gradle android-jetifier

5
推荐指数
0
解决办法
434
查看次数

无法转换 jar 以匹配属性

Execution failed for task ':app:checkClassicGooglePlayDebugDuplicateClasses'.
> Could not resolve all files for configuration ':app:classicGooglePlayDebugRuntimeClasspath'.
   > Failed to transform SaaS_TalkingDataSDK_Android_V5.0.0.jar to match attributes {artifactType=enumerated-runtime-classes, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
      > Execution failed for EnumerateClassesTransform: /home/circleci/project/app/libs/SaaS_TalkingDataSDK_Android_V5.0.0.jar.
         > zip END header not found
Run Code Online (Sandbox Code Playgroud)

我在具有以下配置的 Android 项目中收到此错误

build:gradle:7.0.4

并且android.useAndroidX=true android.enableJetifier=truegradle.properties

android android-jetifier

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

无法转换 moshi-1.13.0.jar(任务 biometric_storage 失败:kaptGenerateStubsDebugKotlin)

我从 Git 中提取了一个在 Flutter 中制作的团队项目,由于某种原因,在构建应用程序时(按 Android Studio 中的绿色箭头并运行 main.dart),我收到以下消息:

What went wrong:
Execution failed for task ':biometric_storage:kaptGenerateStubsDebugKotlin'.
> Could not resolve all files for configuration ':biometric_storage:kapt'.
   > Failed to transform moshi-1.13.0.jar (com.squareup.moshi:moshi:1.13.0) to match attributes {artifactType=processed-jar, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.jvm.environment=standard-jvm, org.gradle.jvm.version=8, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime, org.jetbrains.kotlin.platform.type=jvm}.
      > Execution failed for JetifyTransform: C:\Users\UserName\.gradle\caches\modules-2\files-2.1\com.squareup.moshi\moshi\1.13.0\da685586facab9eb5c4fb630ce248be14e7da21b\moshi-1.13.0.jar.
         > Failed to transform 'C:\Users\UserName\.gradle\caches\modules-2\files-2.1\com.squareup.moshi\moshi\1.13.0\da685586facab9eb5c4fb630ce248be14e7da21b\moshi-1.13.0.jar' using Jetifier. Reason: Unsupported class file major version 60. (Run with --stacktrace for more details.)
Run Code Online (Sandbox Code Playgroud)

我的构建.gradle

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies { …
Run Code Online (Sandbox Code Playgroud)

gradle android-studio moshi flutter android-jetifier

4
推荐指数
2
解决办法
7428
查看次数

jetified android 模块中发现重复的 aa 类

我在我的应用程序 1 aar 和另一个 gradle 依赖项中使用两个库。我在构建发布版本时遇到此错误

Duplicate class a.a found in modules jetified-android-sdk-1.7.26-runtime (com.cashfree.pg:android-sdk:1.7.26) and jetified-adsdk-AN-1.15.16-runtime (adsdk-AN-1.15.16.aar)
Run Code Online (Sandbox Code Playgroud)

这是我的构建 gradle 应用程序级别

implementation 'com.cashfree.pg:android-sdk:1.7.26'
implementation files('libs/adsdk-AN-1.15.16.aar')

//Dependencies used by all payment modes
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.android.volley:volley:1.1.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
Run Code Online (Sandbox Code Playgroud)

无法理解这a.a门课

android gradle android-jetifier

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

使用Jetifier工具的AndroidX迁移将支持库转换为RC版本

在迁移到Android X的过程中,tt似乎Jetifier工具将一些第三方库转换为RC版本(4.6版)。

 |    +--- com.facebook.android:facebook-common:4.34.0
|    |    |    +--- com.facebook.android:facebook-core:4.34.0 (*)
|    |    |    +--- com.google.zxing:core:3.3.0
|    |    |    +--- androidx.legacy:legacy-support-v4:1.0.0-rc01
|    |    |    |    +--- androidx.core:core:1.0.0-rc01 -> 1.0.1 (*)
|    |    |    |    +--- androidx.media:media:1.0.0-rc01
|    |    |    |    |    +--- androidx.annotation:annotation:1.0.0-rc01 -> 1.0.0
|    |    |    |    |    +--- androidx.core:core:1.0.0-rc01 -> 1.0.1 (*)
|    |    |    |    |    \--- androidx.versionedparcelable:versionedparcelable:1.0.0-rc01 -> 1.0.0 (*)
|    |    |    |    +--- androidx.legacy:legacy-support-core-utils:1.0.0-rc01 -> 1.0.0 (*)
|    |    |    |    +--- androidx.legacy:legacy-support-core-ui:1.0.0-rc01 …
Run Code Online (Sandbox Code Playgroud)

android android-studio android-jetpack androidx android-jetifier

0
推荐指数
1
解决办法
1095
查看次数