当前位置: 首页 > 知识库问答 >
问题:

Android崩溃问题与喷气背包喷射器

阴永逸
2023-03-14

我创建了一个项目,并添加了Fabric插件和Crashlyticsdependency,我还对其进行了测试,结果很好。但当我重构项目以使用AndroidX并启用jetifier工具android时。enableJetifier=true项目不会构建,我会遇到多个错误,如:

使用转换JetifyTransform转换文件“crashlytics-2.9.2.aar”以匹配属性{artifactType=jetitied-aar}失败

似乎< code>jetifier工具和< code>Crashlytics依赖项有问题。有没有办法关闭单个依赖项的< code>JetifyTransform?

项目级渐变文件:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.2.41'
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0-alpha14'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:3.1.2'
        classpath 'io.fabric.tools:gradle:1.25.1'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

模块级渐变文件:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 'android-P'
    defaultConfig {
        applicationId "ir.scannpay.person"
        minSdkVersion 14
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.0'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha1'

    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.2'
}

gradle.properties文件:

android.enableJetifier=true
android.useAndroidX=true

我没有忘记将 Fabric 密钥放在清单中,我还将谷歌服务.json 文件放在应用模块中。

当我尝试构建时,会出现以下多个错误:

Unable to resolve dependency for ':app@debug/compileClasspath': Failed to transform file 'crashlytics-2.9.2.aar' to match attributes {artifactType=jetified-aar} using transform JetifyTransform

Unable to resolve dependency for ':app@debug/compileClasspath': Failed to transform file 'crashlytics-core-2.6.2.aar' to match attributes {artifactType=jetified-aar} using transform JetifyTransform

Unable to resolve dependency for ':app@debug/compileClasspath': Failed to transform file 'beta-1.2.7.aar' to match attributes {artifactType=jetified-aar} using transform JetifyTransform

共有1个答案

耿珂
2023-03-14

我找到了解决办法。

您需要做的是在项目级 build.gradle 文件中将结构版本升级到 1.25.4

buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:3.2.0'
        classpath 'io.fabric.tools:gradle:1.25.4'
    }
}
 类似资料:
  • 以下是 BottomNav 实现的概述。该应用程序正确显示底部导航栏,但当选择某个项目时,它会多次调用NavHost。我看到Jetpack撰写样本 https://github.com/android/compose-samples/tree/main/Jetsnack 一个类似的问题。是否有任何解决方法可以避免多次Navhost调用?

  • 我想根据条件更改我的开始导航片段。我的起始片段可以是片段1或片段2。有没有办法实现它?

  • 几天来,我一直试图成功地构建我正在进行的项目(使用Jetpack Compose),但当我更新gradle构建插件和其他一些依赖项时,我无法正确运行该项目。有一些gradle版本与dagger-hilt依赖项冲突,我不知道如何修复它。我正在使用Android Studio的金丝雀测试版。 这里还有我所有的gradle构建文件: Gradle构建模块应用程序: Gradle构建(项目层级): 错误:

  • 可以在Jetpack Compose中进行权重吗?例如,我想以这样一种方式设置它,即一个项目被加权为布局的1/3,而另一个占剩余的2/3。 在XML/ViewGroup样式中,可以使用LinearLayouts和ConstraintLayouts来实现这一点。然而,令我沮丧的是,使用Jetpack Compose似乎是不可能的。 示例: 在ConstraintLayout中,这是按如下方式完成的:

  • 我是jetpack compose的新手,从< code>JetpackCompose基础代码中学习它,所以我在创建一个高性能的懒惰列表中找到了它 注意:LazyColumn不会像那样回收其子项。当您滚动浏览它时,它会发出新的,并且仍然具有高性能,因为与实例化Android视图相比,发出相对便宜。 因此,发出新的可组合项是多么的便宜和高效,那么为什么不使用列并一次性组合整个列表,而不是在滚动时不断

  • 如何从下方显示惰性列?默认情况下,它显示上面的列表