Android支持库不存在,但无法编辑“ Build”文件夹下的文件以引用Android X

时间:2019-07-18 14:53:19

标签: java android android-databinding androidx

我正在将Android迁移到目标28,并使用Android X代替Android支持库。我已将项目中的大多数引用更改为使用AndroidX。

不幸的是,当我进行构建时,它抱怨“ build”下的文件中使用了支持库参考,但这些参考是生成的,无法编辑。

我现在该怎么办?

这是错误的层次结构:

app/build/generated/source/apt/debug > 
com/company/projectname/databinding/FragmentColorItemBinding.java   > 
error: package android.support.v7.widget does not exist 

Obvs,我尝试手动更改它,但出现此错误:

Files under the "build" folder are generated and should not be edited. 

因此,我无法将其更改为引用AndroidX。

我该怎么做才能编译我的构建?

它在这条线上抱怨:

public final android.support.v7.widget.CardView colorThumbnail;

在该文件上。我想使用新的CardView,但不确定如何使用?

编辑:

dependencies {
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'

    implementation files('libs/android-binding-v0.6-preview.jar')
    implementation 'com.flurry.android:analytics:8.2.0@aar'
    implementation files('libs/ormlite-android-5.0.jar')
    implementation files('libs/ormlite-core-5.0.jar')
    implementation 'com.google.android.gms:play-services-vision:18.0.0'
    implementation 'com.google.android.material:material:1.0.0-rc01'
    implementation 'androidx.cardview:cardview:1.0.0'

    implementation 'io.reactivex:rxjava:1.1.5'
    implementation 'io.reactivex:rxandroid:1.1.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
    implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    implementation 'com.squareup.retrofit2:retrofit:2.1.0'
    implementation 'com.github.bumptech.glide:glide:4.0.0'
    implementation 'androidx.appcompat:appcompat:1.1.0-alpha04'
    implementation 'androidx.core:core-ktx:1.1.0-alpha05'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

    def appCenterSdkVersion = '2.0.0'
    implementation "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}"
    implementation "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}"

}

1 个答案:

答案 0 :(得分:1)

那样行不通。要迁移到AndroidX,您需要做的事情比列出的要多。

如果您使用的是Android Studio,那么完成迁移过程非常简单。只需转到Refactor -> Migrate to AndroidX。否则,您将必须找到/gradle.properties文件并添加以下两行:

android.useAndroidX=true
android.enableJetifier=true

完成第一部分后,您需要将CardView导入语句中对Java文件中CardView的引用更改为:

import androidx.cardview.widget.CardView;
...
public final CardView colorThumbnail;

还要确保xml文件中的所有引用也正确!