无法使用支持版本

无法使用支持版本

本文介绍了Android 无法使用支持版本 27.0.0 查找窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

仅在 Android 5.0.2 上将 supportVersion 更新为 27.0.0 后,应用程序崩溃并显示此堆栈跟踪:

After the update of supportVersion to 27.0.0 ONLY on Android 5.0.2 the app crash with this stacktrace:

W/WindowManager: Failed looking up window
            java.lang.IllegalArgumentException: Requested window android.view.ViewRootImpl$W@f004691 does not exist
            at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8426)
            at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8417)
            at com.android.server.wm.WindowManagerService.removeWindow(WindowManagerService.java:2558)
            at com.android.server.wm.Session.remove(Session.java:186)
            at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:2920)
            at android.view.ViewRootImpl.doDie(ViewRootImpl.java:5390)
            at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3223)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.os.HandlerThread.run(HandlerThread.java:61)
            at com.android.server.ServiceThread.run(ServiceThread.java:46)

在设备和模拟器上.

如果我把 26.0.2 作为 supportVersion,应用程序仍然照常运行.

If I put 26.0.2 as supportVersion, the app still works normally as usual.

更新

问题仍然存在 supportVersion 27.0.1

更新 2

项目gradle

buildscript {
    ext.kotlin_version = '1.1.51'
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.android.tools.build:gradle:3.0.0'
        classpath 'com.google.gms:google-services:3.0.0'
        classpath 'io.fabric.tools:gradle:1.24.2'
    }
}

plugins {
    id "com.diffplug.gradle.spotless" version "3.6.0"
}

allprojects {
    repositories {
        google()
        jcenter()
        jcenter { url = 'http://dl.bintray.com/swrve-inc/android' }
        maven { url 'https://maven.fabric.io/public' }
        maven { url 'http://maven.localytics.com/public' }
        maven { url 'http://dl.bintray.com/teads/TeadsSDK-android' }
        maven { url 'http://maven.apptimize.com/artifactory/repo' }
        maven { url 'https://comscore.bintray.com/Analytics' }
    }
}

ext {
    //APPLICATION
    compileSdkVersion = 27
    buildToolsVersion = '27.0.1'
    minSdkVersion = 19
    targetSdkVersion = 27

    //LIBRARIES
    timberVersion = '4.6.0'
    guavaVersion = '20.0'
    multidexVersion = '1.0.2'
    supportVersion = '27.0.1'
    constraintVersion = '1.0.2'
    playServiceVersion = '11.4.0'
    commonLangVersion = '3.5'
    jacksonVersion = '2.4.2'
    appsFlyerVersion = '4.7.1'
    facebookAudienceVersion = '4.26.1'
    facebookSkdVersion = '4.26.0'
    facebookAdapterVersion = '4.26.1.0'
    flurryVersion = '6.9.2'
    googleTrackingVersion = '2.2.4'
    crashliticsVersion = '2.6.8'
    swrveVersion = '4.10.1'
    swrveLocationVersion = '1.3'
    pubnativeVersion = '2.0.5'
    localyticsVersion = '4.3.1'
    teadsVersion = '2.4.13'
    oguryPresageVersion = '2.1.21'
    evernoteAndroidJobVersion = '1.1.11'
    apptimizeVersion = '2.13.5'
    comScoreVersion = '5.5.1'
    bottomBarVersion = '2.3.1'
    rxJavaVersion = '2.1.6'
    rxAndroidVersion = '2.0.1'

    //TEST LIBRARIES
    testsVersion = '1.0.1'
    espressoVersion = '3.0.1'
    junitVersion = '4.12'
    mockitoVersion = '1.10.19'
    powermockVersion = '1.6.6'
    robolectricVersion = '3.5'
    assertjVersion = '1.2.0'

    //PUBNATIVE ADAPTERS
    pnFlurryVersion = '6.9.2'
    pnAdmobVersion = '9.6.1'

}

应用程序渐变

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'io.fabric'
apply plugin: 'com.diffplug.gradle.spotless'

spotless {
    kotlin {
        target "**/*.kt"
        ktlint()
    }
}

def versionMajor = 8
def versionMinor = 8
def versionPatch = 8
def versionBuild = 8

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    flavorDimensions "std"

    defaultConfig {
        dimension "std"

        applicationId "xxx.yyy.zzz"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion

        versionCode versionMajor * 1000 + versionMinor * 100 + versionPatch * 10 + versionBuild
        versionName "${versionMajor}.${versionMinor}.${versionPatch}"

        //APP VERSION NAME
        buildConfigField "String", "VERSION_NAME_PREFIX", "\"zzzz\""

        //MARKET CONFIG
        buildConfigField "String", "MARKET_NAME", "\"GooglePlay\""
        buildConfigField "String", "MARKET_ENDPOINT", "\"market://details?id=\""
        buildConfigField "String", "MARKET_BACKOFF_ENDPOINT", "\"https://play.google.com/store/apps/details?id=\""

        multiDexEnabled true

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    signingConfigs {
        ....
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }

    buildTypes {
        debug {
            // Disable fabric build ID generation for debug builds
            ext.enableCrashlytics = false
        }
        release {
            minifyEnabled true
            proguardFiles 'acb.txt'
            zipAlignEnabled true
        }
    }
    lintOptions {
        disable 'MissingTranslation'
        checkReleaseBuilds true
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
        fatal 'StopShip'

    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {

    //CORE LIB
    implementation "com.jakewharton.timber:timber:${rootProject.ext.timberVersion}"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
    implementation "com.google.guava:guava:${rootProject.ext.guavaVersion}"
    implementation "com.android.support:multidex:${rootProject.ext.multidexVersion}"
    implementation "com.android.support:multidex-instrumentation:${rootProject.ext.multidexVersion}"
    implementation "com.android.support:design:${rootProject.ext.supportVersion}"
    implementation "com.android.support:cardview-v7:${rootProject.ext.supportVersion}"
    implementation "com.android.support.constraint:constraint-layout:${rootProject.ext.constraintVersion}"
    implementation "com.google.android.gms:play-services-identity:${rootProject.ext.playServiceVersion}"
    implementation "com.google.android.gms:play-services-base:${rootProject.ext.playServiceVersion}"
    implementation "com.google.android.gms:play-services-analytics:${rootProject.ext.playServiceVersion}"
    implementation "com.google.android.gms:play-services-gcm:${rootProject.ext.playServiceVersion}"
    implementation "com.google.android.gms:play-services-location:${rootProject.ext.playServiceVersion}"
    implementation "com.google.android.gms:play-services-maps:${rootProject.ext.playServiceVersion}"
    implementation "com.google.android.gms:play-services-ads:${rootProject.ext.playServiceVersion}"
    implementation "org.apache.commons:commons-lang3:${rootProject.ext.commonLangVersion}"
    implementation "com.fasterxml.jackson.core:jackson-databind:${rootProject.ext.jacksonVersion}"
    implementation "com.fasterxml.jackson.core:jackson-core:${rootProject.ext.jacksonVersion}"
    implementation "com.fasterxml.jackson.core:jackson-annotations:${rootProject.ext.jacksonVersion}"
    implementation "io.reactivex.rxjava2:rxjava:${rootProject.ext.rxJavaVersion}"
    implementation "io.reactivex.rxjava2:rxandroid:${rootProject.ext.rxAndroidVersion}"

    //SDK
    implementation "com.appsflyer:af-android-sdk:${rootProject.ext.appsFlyerVersion}@aar"
    implementation "com.facebook.android:facebook-android-sdk:${rootProject.ext.facebookSkdVersion}"
    implementation "com.facebook.android:audience-network-sdk:${rootProject.ext.facebookAudienceVersion}"
    implementation "com.flurry.android:analytics:${rootProject.ext.flurryVersion}"
    implementation "com.flurry.android:ads:${rootProject.ext.flurryVersion}"
    implementation files("libs/GoogleConversionTrackingSdk-${rootProject.ext.googleTrackingVersion}.jar")
    implementation("com.crashlytics.sdk.android:crashlytics:${rootProject.ext.crashliticsVersion}@aar") {
        transitive = true
    }

    //TEADS VIDEO
    implementation("tv.teads.sdk:androidsdk:${rootProject.ext.teadsVersion}:fullRelease@aar") {
        transitive = true
    }

    //OGURY - PRESAGE
    implementation files("libs/presage-lib-${rootProject.ext.oguryPresageVersion}-obfuscated.jar")

    //PUBNATIVE
    implementation "net.pubnative:sdk:${rootProject.ext.pubnativeVersion}"

    //PUBNATIVE - ADAPTERS
    implementation "net.pubnative:sdk.adapter.admob:${rootProject.ext.pnAdmobVersion}"
    implementation "net.pubnative:sdk.adapter.flurry:${rootProject.ext.pnFlurryVersion}"

    //ADMOB - ADAPTERS
    implementation "com.google.ads.mediation:facebook:${rootProject.ext.facebookAdapterVersion}"

    //SWRVE PLOT
    implementation "com.swrve.sdk.android:swrve-google:${rootProject.ext.swrveVersion}"
    implementation(name: "swrve-location-${rootProject.ext.swrveLocationVersion}", ext: "aar")

    //LOCALYTICS
    implementation "com.localytics.android:library:${rootProject.ext.localyticsVersion}"

    //JOB
    implementation "com.evernote:android-job:${rootProject.ext.evernoteAndroidJobVersion}"

    //APPTIMIZE
    implementation "com.apptimize:apptimize-android:${rootProject.ext.apptimizeVersion}"

    //COMSCORE
    implementation "com.comscore:android-analytics:${rootProject.ext.comScoreVersion}"

    //BOTTOM BAR
    implementation "com.roughike:bottom-bar:${rootProject.ext.bottomBarVersion}"

    //TEST
    androidTestImplementation "com.android.support:support-annotations:${rootProject.ext.supportVersion}"
    androidTestImplementation "com.android.support.test:runner:${rootProject.ext.testsVersion}"
    androidTestImplementation "com.android.support.test:rules:${rootProject.ext.testsVersion}"
    androidTestImplementation "com.android.support.test.espresso:espresso-core:${rootProject.ext.espressoVersion}"
    androidTestImplementation "com.android.support.test.espresso:espresso-intents:${rootProject.ext.espressoVersion}"
    androidTestImplementation("com.android.support.test.espresso:espresso-contrib:${rootProject.ext.espressoVersion}") {
        exclude group: 'com.android.support', module: 'appcompat-v7'
        exclude group: 'com.android.support', module: 'support-v4'
        exclude group: 'com.android.support', module: 'design'
        exclude module: 'recyclerview-v7'
    }

    testImplementation "junit:junit:${rootProject.ext.junitVersion}"
    testImplementation "org.mockito:mockito-core:${rootProject.ext.mockitoVersion}"
    testImplementation "org.powermock:powermock-api-mockito:${rootProject.ext.powermockVersion}"
    testImplementation "org.powermock:powermock-module-junit4:${rootProject.ext.powermockVersion}"
    testImplementation "org.powermock:powermock-module-junit4-rule:${rootProject.ext.powermockVersion}"
    testImplementation "org.powermock:powermock-classloading-xstream:${rootProject.ext.powermockVersion}"
    testImplementation "org.robolectric:robolectric:${rootProject.ext.robolectricVersion}"
    testImplementation "org.robolectric:shadows-multidex:${rootProject.ext.robolectricVersion}"
    testImplementation "org.robolectric:shadows-httpclient:${rootProject.ext.robolectricVersion}"
    testImplementation "com.android.support:support-annotations:${rootProject.ext.supportVersion}"
    testImplementation "com.squareup.assertj:assertj-android:${rootProject.ext.assertjVersion}"
}

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

推荐答案

在我的情况下,这是由于 AppCompatActivity 扩展了 start Activity,当它更改为 Activity 工作正常!

In my case it was due to the AppCompatActivity extend for the start activity, When it changed to Activity it is working fine!

这篇关于Android 无法使用支持版本 27.0.0 查找窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-05 02:08