无法导入 "GestureDetectorCompat" class

Can't import "GestureDetectorCompat" class

我正在尝试将 GestureDetectorCompat.class 导入 Android Studio,但不起作用。

我尝试在 activity 的 class 定义上方添加 import androidx.core.view.GestureDetectorCompat;import android.support.v4.view.GestureDetectorCompat;,但它显示 Cannot resolve symbol 'GestureDetectorCompat' 错误。

将鼠标悬停在代码中的 GestureDetectorCompat 上,我得到了将库添加到 class 路径的选项,但单击它什么也没做,仍然无法解析符号。

我试图将它添加到 ExoPlayer 演示应用程序 PlayerActivity class。

private void initGesture()
{
    GestureDetectorCompat mDetector = new GestureDetectorCompat(this, this);
}

build.gradle(模块:应用程序)

// Copyright (C) 2016 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
apply from: '../../constants.gradle'
apply plugin: 'com.android.application'

android {
    compileSdkVersion project.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        versionName project.ext.releaseVersion
        versionCode project.ext.releaseVersionCode
        minSdkVersion 16
        targetSdkVersion project.ext.targetSdkVersion
    }

    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles = [
                "proguard-rules.txt",
                getDefaultProguardFile('proguard-android.txt')
            ]
        }
        debug {
            jniDebuggable = true
        }
    }

    lintOptions {
        // The demo app does not have translations.
        disable 'MissingTranslation'
    }

    flavorDimensions "extensions"

    productFlavors {
        noExtensions {
            dimension "extensions"
        }
        withExtensions {
            dimension "extensions"
        }
    }
}

dependencies {
    implementation 'com.android.support:support-annotations:' + supportLibraryVersion
    implementation project(modulePrefix + 'library-core')
    implementation project(modulePrefix + 'library-dash')
    implementation project(modulePrefix + 'library-hls')
    implementation project(modulePrefix + 'library-smoothstreaming')
    implementation project(modulePrefix + 'library-ui')
    withExtensionsImplementation project(path: modulePrefix + 'extension-ffmpeg')
    withExtensionsImplementation project(path: modulePrefix + 'extension-flac')
    withExtensionsImplementation project(path: modulePrefix + 'extension-ima')
    withExtensionsImplementation project(path: modulePrefix + 'extension-opus')
    withExtensionsImplementation project(path: modulePrefix + 'extension-vp9')
    withExtensionsImplementation project(path: modulePrefix + 'extension-rtmp')
}

apply plugin: 'com.google.android.gms.strict-version-matcher-plugin'

我希望添加 class 并正常工作,但只是出现了上述问题。

解决方法: GestureDetectorCompat属于com.android.support:support-compat依赖。您必须将它添加到 gradle 文件中的依赖项中。

dependencies {
    // Your dependencies here.
    // ...

    // Add this line.
    implementation 'com.android.support:support-compat:28.0.0'
}

然后在代码中使用。

import android.support.v4.view.GestureDetectorCompat;

private void initGesture() {
    GestureDetectorCompat mDetector = new GestureDetectorCompat(this, this);
}

我为遇到此问题的任何人添加以下答案:(前一个对我不起作用)

我不得不替换以下导入

import android.support.v4.view.GestureDetectorCompat;

有了这个:

import androidx.core.view.GestureDetectorCompat;

使用它。

我认为原因是 'android.support.v4' 中的一些子包已被弃用,我们应该使用 'androidx'

中的它们

Source

新版本的 Android v4 包已从中删除了视图。所以要在上面的代码行中使用 GestureDetactorCompat