Не удалось найти класс android.support.v7.app.AppCompatViewInflater в проекте средства выбора места

Я создаю демонстрационный проект для Place Picker. Но когда я нажимаю кнопку, чтобы выбрать местоположение, это дает мне исключение AppCompatViewInflater ClassNotFoundException, и карта Google немедленно закрывается.

Вот моя ошибка logcat -

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.app.AppCompatViewInflater" on path: DexPathList[[zip file "/system/framework/com.android.location.provider.jar", zip file "/system/framework/com.android.media.remotedisplay.jar", zip file "/data/app/com.google.android.gms-2/base.apk"],nativeLibraryDirectories=[/data/app/com.google.android.gms-2/lib/arm64, /data/app/com.google.android.gms-2/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    at java.lang.Class.classForName(Native Method) 
    at java.lang.Class.forName(Class.java:324) 
    at java.lang.Class.forName(Class.java:285) 
    at android.support.v7.app.AppCompatDelegateImpl.a(:com.google.android.gms@[email protected] (040406-213742215):1) 
    at android.support.v7.app.AppCompatDelegateImpl.onCreateView(:com.google.android.gms@[email protected] (040406-213742215):1) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:746) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
     android.support.v7.app.AppCompatDelegateImpl.o(:com.google.android.gms@[email protected] (040406-213742215):8) 
    at android.support.v7.app.AppCompatDelegateImpl.b(:com.google.android.gms@[email protected] (040406-213742215):56) 
    at dlf.setContentView(:com.google.android.gms@[email protected] (040406-213742215):1) 
    at com.google.android.places.ui.placepicker.PlacePickerChimeraActivity.onCreate(:com.google.android.gms@[email protected] (040406-213742215):12) 
    at com.google.android.chimera.Activity.publicOnCreate(:com.google.android.gms@[email protected] (040406-213742215)) 
    at dlk.onCreate(:com.google.android.gms@[email protected] (040406-213742215):6) 
    at ojt.onCreate(:com.google.android.gms@[email protected] (040406-213742215):2) 
    at android.app.Activity.performCreate(Activity.java:6583) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1114) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2531) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
    Suppressed: java.lang.ClassNotFoundException: android.support.v7.app.AppCompatViewInflater
    at java.lang.Class.classForName(Native Method)
    at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
    at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:504)

Вот мой класс активности по выбору места -

private fun isGooglePlayServicesAvailable(context: Context): Boolean {
    val googleApiAvailability = GoogleApiAvailability.getInstance()
    val resultCode = googleApiAvailability.isGooglePlayServicesAvailable(context)
    return resultCode == ConnectionResult.SUCCESS
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    activity = this
    context = this

    location_picker_btn.setOnClickListener {

        if (isGooglePlayServicesAvailable(activity)) {

            try {
                val builder = PlacePicker.IntentBuilder()
                activity.startActivityForResult(builder.build(activity), PLACE_PICKER_REQUEST)
            } catch (e: Exception) {
                e.printStackTrace()
            }
        } else {
            Toast.makeText(activity, "GooglePlayServices Not available", Toast.LENGTH_LONG).show()
        }
    }
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    if (requestCode == PLACE_PICKER_REQUEST) {
        if (resultCode == Activity.RESULT_OK && data != null) {
            val place = PlacePicker.getPlace(data, this)
            val toastMsg = String.format("Place: %s", place.name)
            text.text = toastMsg
        }
    }
}

Вот мой класс Gradle -

   apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
    compileSdkVersion 26
    buildToolsVersion '27.0.3'

defaultConfig {
    applicationId "com.example.admin.getdesiredmaplocation"
    minSdkVersion 19
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
lintOptions {
    disable 'GoogleAppIndexingWarning'
    baseline file("AndroidManifest.xml") // your choice of filename/path here
}
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-jre7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:support-v4:26.1.0'
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.google.android.gms:play-services-maps:11.8.0'
    implementation 'com.google.android.gms:play-services-places:11.8.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'
}

Любые предложения, как решить эту проблему. Спасибо

Попробуйте сменить buildToolsVersion '27.0.3' на buildToolsVersion '26.0.2'

HedeH 25.10.2018 12:39

Я пробовал, но все равно не работает.

Ana 25.10.2018 14:35

Так что попробуйте сменить com.android.support:appcompat-v7:26.1.0 на com.android.support:appcompat-v7:28.0.0-alpha1. Здесь находится недостающий класс. Здесь указано: developer.android.com/reference/android/support/v7/app/…

HedeH 25.10.2018 14:43

@HedeH Это не работает.

Néstor 27.11.2018 03:26

Как ты это решил?

thiagolr 18.01.2020 14:15

это была проблема с версией Gradle. Я использовал библиотеки для v4, но версия класса inflater была v7.

Ana 20.01.2020 08:51
5
6
1 404
0

Другие вопросы по теме