web-dev-qa-db-ja.com

API 28および「androidx.appcompat」ライブラリプロジェクトでは、「AppCompatActivity」記号が見つかりません

ビルドとターゲットバージョンを28(パイ)に更新し、関連する依存関係を置き換えました。現在、私のプロジェクトでは、Symbol not found on AppCompatActivityと言います。私はしようとしました

  • クリーンプロジェクト
  • プロジェクトを再構築
  • キャッシュの無効化/再起動

しかし、結果は同じです。また、私がしようとすると Ctrl+Space アクティビティクラスでキーワードを拡張した後、"AppCompatActivity提案。 librariesフォルダーに存在するかどうかを調査しようとしましたが、そこに存在します。

enter image description here

さて、それを機能させるにはどうすればいいですか? androidx libsのバリエーション/代替がある場合はお知らせください。これが私の完全なbuild.gradleファイル

apply plugin: 'com.Android.application'
apply plugin: 'com.google.gms.google-services'

Android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.invogen.messagingapp"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
//    implementation 'com.Android.support:appcompat-v7:28.0.0'
//    implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
//    implementation 'com.Android.support:design:28.0.0'
//    implementation 'com.Android.support:support-v4:28.0.0'

    // Libs for newer API 28
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.Android.material:material:1.1.0-alpha01'
    implementation 'androidx.cardview:cardview:1.0.0'


    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.Android.support.test:runner:1.0.2'
    androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.2'

    // Libs for Firebase Functionality
    implementation 'com.google.firebase:firebase-core:16.0.5'
//    implementation 'com.google.firebase:firebase-database:16.0.4'
    implementation 'com.google.firebase:firebase-messaging:17.3.4'
    implementation 'com.google.firebase:firebase-auth:16.0.5'
    implementation 'com.google.firebase:firebase-storage:16.0.4'

    // Lib for Firebase UI Elements
    implementation 'com.firebaseui:firebase-ui-database:4.2.1'

    // Libs for QR Code
    implementation 'com.google.zxing:core:3.2.1'
    implementation 'com.journeyapps:zxing-Android-embedded:3.2.0@aar'

    // Lib for Circle Image View (Profile Image)
    implementation 'de.hdodenhof:circleimageview:2.2.0'

    // Lib for Loading Images
    implementation 'com.squareup.picasso:picasso:2.71828'

    //Lib for Cropping Images
    api 'com.theartofdev.edmodo:Android-image-cropper:2.8.+'


}
apply plugin: 'com.google.gms.google-services'

他のいくつかの投稿では、Manifestファイルに以下の2つのパラメーターを追加することを提案しています

Android:appComponentFactory="anystrings be placeholder"
tools:replace="Android:appComponentFactory"

しかし、これらの2行のプロジェクトは複数のエラーで同期し、Android Studioは言う

コンパイルに失敗しました。詳細については、コンパイラエラーの出力を参照してください。

質問に詳細を追加する必要がある場合は、お知らせください。

8

編集:これで、プロジェクトをandroidxに簡単に移行できます。メニューバーからRefactor => Migrate to Androidxをクリックするだけです。 enter image description here

以前は次のようにしました。
Clean and buildRebuild project Androidを使用すると、スタジオはAndroid.support.v7からのインポートのような未使用のインポートをクリーンアップしなかったため、すべてのアクティビティから手動で削除しました。現在、Androidスタジオは、正しいライブラリandroidx.appcompatからAppCompatActivityを提案します。

それが誰かを助けることを願っています。

5

ターゲットクラスを置き換える必要があります。

例えば。

import Android.support.v7.app.AppCompatActivity;

に置き換えます:

import androidx.appcompat.app.AppCompatActivity;
16
iamcxl

Gradleのプロパティに以下の行を追加します:

Android.useAndroidX = true Android.enableJetifier = true

これにより、プロジェクトがAndroid Xにアップグレードされます。

1