我升级了android studio to 3.4 canary
,现在由于以下错误我无法再成功构建:
The given artifact contains a string literal with a package reference 'android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.
Run Code Online (Sandbox Code Playgroud)
更多细节:
Caused by: java.lang.RuntimeException: Failed to transform '.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife-compiler/9.0.0-SNAPSHOT/732f93940c74cf32a7c5ddcc5ef66e53be052352/butterknife-compiler-9.0.0-SNAPSHOT.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'android.support.v4.content' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated …
Run Code Online (Sandbox Code Playgroud) 我有2个模块的一个项目:一个应用程序(JAVA)与构建类型debug
,release
以及enterprise
和科特林库(release
以及debug
由应用程序使用).
我正在使用AndroidX并且在我的内容中有以下内容gradle.properties
:
android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)
如果我通过Gradle运行项目,我会收到一堆编译错误(预期).但是,如果我尝试在Android Studio(3.2 Beta 5)中使用它,特别是在尝试与Gradle模型同步时,我会得到:
Unable to resolve dependency for ':app@debug/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@release/compileClasspath': …
Run Code Online (Sandbox Code Playgroud) android android-studio android-studio-3.2 androidx android-jetifier
有人知道如何调试这个吗?我无法弄清楚哪些库产生了问题。
旁注,它只发生在我尝试运行 Android 测试时,所以我最好的猜测是它与某些测试库有关。
testImplementation "androidx.room:room-testing:$version_room"
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.4.0'
// Compose Tests
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$version_compose"
debugImplementation "androidx.compose.ui:ui-test-manifest:$version_compose"
// Hilt test
androidTestImplementation "com.google.dagger:hilt-android-testing:$version_hilt"
kaptAndroidTest "com.google.dagger:hilt-android-compiler:$version_hilt"
debugImplementation 'androidx.fragment:fragment-testing:1.3.6'
Run Code Online (Sandbox Code Playgroud)
Execution failed for task ':app:mergeDebugAndroidTestJavaResource'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction
> 2 files found with path 'META-INF/LGPL2.1' from inputs:
- /home/lbenevento/.gradle/caches/transforms-3/1e2dfa6057fe4e701d175f47b1099efa/transformed/jetified-jna-platform-5.5.0.jar
- /home/lbenevento/.gradle/caches/transforms-3/405542266c1c406c39ff1a20cb26a332/transformed/jetified-jna-5.5.0.jar
Adding a packagingOptions block may help, please refer to
https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html
for more information
* Try:
Run with --info or --debug option to get more log …
Run Code Online (Sandbox Code Playgroud) 我一直在尝试将AndroidX集成到我的混合React Native项目中,我遇到了Jetifier不在"本地"项目上运行的问题.这导致我的所有React Native库仍然使用旧的支持库.我已将相应的行放入gradle.properties文件中:
android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)
这适用于任何远程库,但React Native将其所有库作为本地模块放在磁盘上.
我已经尝试了很多东西,但到目前为止,我最好的解决方案是一个post-package脚本,基本上手动替换所有的包,并将库添加/删除到各种gradle脚本.
这是一个非常手动的过程,并不是超级可持续的.有没有更好的方法来处理这个问题?
android react-native react-native-android androidx android-jetifier
由于此错误,我的反应本机项目构建因某种原因失败:
Execution failed for task ':app:mergeDebugNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction
> 2 files found with path 'lib/arm64-v8a/libfbjni.so' from inputs:
- C:\Users\Antonio\.gradle\caches\transforms-3\7cca348744e25f57fc2d9f871aa73c9a\transformed\jetified-react-native-0.71.0-rc.0-debug\jni\arm64-v8a\libfbjni.so
- C:\Users\Antonio\.gradle\caches\transforms-3\08b0f5c7017bf081f79b63ea5b053dc0\transformed\jetified-fbjni-0.3.0\jni\arm64-v8a\libfbjni.so
If you are using jniLibs and CMake IMPORTED targets, see
https://developer.android.com/r/tools/jniLibs-vs-imported-targets
Run Code Online (Sandbox Code Playgroud)
有人知道什么可能导致构建失败吗?我没有编辑任何构建文件和/或删除/安装/升级新软件包,谢谢
gradle build.gradle android-gradle-plugin react-native android-jetifier
我已成功将项目迁移到AndroidX.应用程序运行正常,但我收到编译时错误,因为我的依赖项使用支持包.
因为PhotoView
是一个依赖类,它使用的android.support.v7.widget.AppCompatImageView
是我的项目中不再可用的.因为它现在androidx.appcompat.widget.AppCompatImageView
是的,android.enableJetifier
将此依赖项转换AndroidX
为运行时,但我想摆脱编译时错误.
现在有快速解决方案吗?
尝试将我的应用程序更新为androidX
依赖项。按照此处的说明进行操作,编译失败。错误来自JetifyTransform
任务无法处理某个 .JAR 依赖项(仅供参考 -三星 Spass SDK):
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:kaptGenerateStubsStandardNo_vendorDebugKotlin'.
> Could not resolve all artifacts for configuration ':app:standardNo_vendorDebugCompileClasspath'.
> Failed to transform file 'pass-v1.2.2.jar' to match attributes {artifactType=processed-jar} using transform JetifyTransform
> Failed to transform '/Users/hanandann/StudioProjects/ArnakPaymentsAndroid/Payments/app/libs/pass-v1.2.2.jar' using Jetifier. Reason: null. (Run with --stacktrace for more details.)
> Failed to transform file 'pass-v1.2.2.jar' to match attributes {artifactType=processed-jar} using transform JetifyTransform
> …
Run Code Online (Sandbox Code Playgroud) 将 flutter 版本升级到Flutter 1.22.0-2.0.pre.78 后 • channel master我收到此警告:-
警告:[处理器]库“C:\用户的gradle .... \缓存\模块-2 \文件-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'`
这个问题将来是否会导致一些严重的问题。提前致谢 :)
我一直在使用Zendesk v1 SDK和AndroidX和Jetifier,并且在更新到AS 3.3,Gradle版本4.10.1之后,在编译时出现错误,看来Jetifier在错误的生成文件中错误地转换了ID。错误中列出的行有2个编辑文本,其中两个都包含android:nextFocusDown =“ @ + id / ..”,这显然是无效的。下面的错误和Gradle文件
org.gradle.execution.MultipleBuildFailures: Build completed with 1 failures.
at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:358)
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.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:219)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149)
at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:124)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)
at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:154)
at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)
at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)
at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:55)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:50)
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.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:44)
at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:79)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:44)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30) …
Run Code Online (Sandbox Code Playgroud) 强调文本我需要在项目中使用 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
android-jetifier ×10
android ×8
androidx ×8
gradle ×2
react-native ×2
build.gradle ×1
butterknife ×1
flutter ×1
ios ×1
zendesk ×1