Als ich migrierte, um das neue zu verwenden androidx Bibliotheken obwohl die BottomSheetBehavior wird vermisst. Die Zuordnung aus der obigen Support-Bibliothek ist nicht in der AndroidX-Refactoring-Liste entweder, aber das Migrationstool hat es entfernt.
Was fehlt mir, um das BottomSheetBehavior mit dem neuen aufzunehmen androidx Bibliotheken.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.android.material:material:1.0.0-beta01'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// ReactiveX
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxkotlin:2.2.0'
implementation 'com.android.support:design:28.1.0'
// Android Compatability Libraries
// Version: https://developer.android.com/topic/libraries/support-library/refactor
implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0-beta01'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-beta01'
implementation 'androidx.recyclerview:recyclerview:1.0.0-beta01'
// Android Navigation Component
// Check here for updated version info - will move to androidx soon.
// https://developer.android.com/topic/libraries/architecture/adding-components
def nav_version = "1.0.0-alpha04"
// use -ktx for Kotlin
implementation "android.arch.navigation:navigation-fragment-ktx:$nav_version"
implementation "android.arch.navigation:navigation-ui-ktx:$nav_version"
androidTestImplementation "android.arch.navigation:navigation-testing-ktx:$nav_version"
// Testing
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
}
Es stellt sich heraus, dass das Refactor-Tool in Android Studio Refactor > Migrate to AndroidX hat das XML für das BottomSheetBehaviour nicht richtig migriert.
Der alte Standort war android.support.design.widget.BottomSheetBehavior, und wurde nicht vom Migrationstool geändert. Das ursprüngliche XML war:
Ich habe den ganzen Tag damit verbracht. Hoffentlich sprudelte dies hoch, damit die Leute es leichter entdecken konnten.
– Adam Hurwitz
28. Oktober 2018 um 6:56 Uhr
Im letzten Update von AS wurde dieser Fehler bei der AndroidX-Migration noch nicht behoben. Vielen Dank
– Genaut
6. September 2019 um 17:20 Uhr
Könntest du auch ersetzen
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
or
app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
Mein Projekt, das aus einer Android Studio-Vorlage generiert wurde, hatte keine @string/bottom_sheet_behavior. Ich glaube, ich konnte es durch Hinzufügen hineinziehen implementation "com.google.android.material:material:1.1.0-alpha04" zu meinem app/build.gradle
Didn't find class "com.google.android.material.bottomsheet.BottomSheetBehaviour"
Die einzige Möglichkeit, dies zu lösen, bestand darin, das XML zu ändern:
Change:
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
Change to:
app:layout_behavior="@string/bottom_sheet_behavior"