Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/gms/common/GoogleAppAvailabilityLight;_Java_Android_Android Studio_Gradle_Android Gradle Plugin - Fatal编程技术网

java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/gms/common/GoogleAppAvailabilityLight;

java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/gms/common/GoogleAppAvailabilityLight;,java,android,android-studio,gradle,android-gradle-plugin,Java,Android,Android Studio,Gradle,Android Gradle Plugin,我有一个Android Studio项目,它由几个模块组成,并且有几个带有依赖项的gradle文件 项目进行编译,但在运行时,当应用程序调用Google Play服务库时,它会崩溃,并出现以下堆栈跟踪: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/GoogleApiAvailabilityLight; at com.bosch.wdw.impl.d.g.d(Unk

我有一个Android Studio项目,它由几个模块组成,并且有几个带有依赖项的gradle文件

项目进行编译,但在运行时,当应用程序调用Google Play服务库时,它会崩溃,并出现以下堆栈跟踪:

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/GoogleApiAvailabilityLight;
    at com.bosch.wdw.impl.d.g.d(Unknown Source:3088)
    at com.bosch.wdw.impl.d.a(Unknown Source:90)
    at com.bosch.wdw.impl.e.startMonitoring(Unknown Source:122)
    at com.warptec.widgets.WDWTask.startWDWMonitoring(WDWTask.java:199)
    at com.warptec.widgets.WDWTask.permissionForLocation(WDWTask.java:175)
    at com.warptec.widgets.WDWTask.performTask(WDWTask.java:158)
    at com.warptec.widgets.TaskBase$2.run(TaskBase.java:124)
    at android.os.Handler.handleCallback(Handler.java:789)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6938)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.GoogleApiAvailabilityLight" on path: DexPathList[[zip file "/data/app/com.warptec.widgets-H5zUVpqwHV8OyTqLouF8ng==/base.apk"],nativeLibraryDirectories=[/data/app/com.warptec.widgets-H5zUVpqwHV8OyTqLouF8ng==/lib/arm, /data/app/com.warptec.widgets-H5zUVpqwHV8OyTqLouF8ng==/base.apk!/lib/armeabi-v7a, /system/lib, /system/vendor/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at com.bosch.wdw.impl.d.g.d(Unknown Source:3088) 
    at com.bosch.wdw.impl.d.a(Unknown Source:90) 
    at com.bosch.wdw.impl.e.startMonitoring(Unknown Source:122) 
    at com.warptec.widgets.WDWTask.startWDWMonitoring(WDWTask.java:199) 
    at com.warptec.widgets.WDWTask.permissionForLocation(WDWTask.java:175) 
    at com.warptec.widgets.WDWTask.performTask(WDWTask.java:158) 
    at com.warptec.widgets.TaskBase$2.run(TaskBase.java:124) 
    at android.os.Handler.handleCallback(Handler.java:789) 
    at android.os.Handler.dispatchMessage(Handler.java:98) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6938) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 
应用程序的模块渐变文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "com.warptec.widgets"
        minSdkVersion 17
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        multiDexEnabled true

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

        ndk {
            abiFilters "armeabi-v7a", "x86", "armeabi", "mips"
        }
    }
    lintOptions {
        abortOnError false
        disable "ResourceType", "ValidFragment", "WifiManagerLeak", "MissingTranslation"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.so', '*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
     })
     /**
     * Library file of the SDK, delivered as aar-library
     */
     compile(name: 'wdwsdk-4.0.1', ext: 'aar')
     compile 'com.google.android.exoplayer:exoplayer-core:r2.4.0'
     compile project(':lChainRunnables')
     compile project(':lClosedSource')
     compile project(':lSpoledgeAAC')
     compile project(':IChromecast')
     compile files('libs/Pushwoosh.jar')
     compile 'com.android.support:support-v4:26.0.0-alpha1'
     compile 'com.android.support:appcompat-v7:26.0.0'
     compile 'com.google.android.gms:play-services:12.0.1'
}
apply plugin: 'com.android.library'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile "com.android.support:mediarouter-v7:26.0.1"
    compile "com.google.android.gms:play-services-cast-framework:12.0.1"

}
    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        flatDir {
            dirs 'libs'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.google.gms:google-services:3.3.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        flatDir {
            dirs 'libs'
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
IChromecasts模块的gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "com.warptec.widgets"
        minSdkVersion 17
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        multiDexEnabled true

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

        ndk {
            abiFilters "armeabi-v7a", "x86", "armeabi", "mips"
        }
    }
    lintOptions {
        abortOnError false
        disable "ResourceType", "ValidFragment", "WifiManagerLeak", "MissingTranslation"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.so', '*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
     })
     /**
     * Library file of the SDK, delivered as aar-library
     */
     compile(name: 'wdwsdk-4.0.1', ext: 'aar')
     compile 'com.google.android.exoplayer:exoplayer-core:r2.4.0'
     compile project(':lChainRunnables')
     compile project(':lClosedSource')
     compile project(':lSpoledgeAAC')
     compile project(':IChromecast')
     compile files('libs/Pushwoosh.jar')
     compile 'com.android.support:support-v4:26.0.0-alpha1'
     compile 'com.android.support:appcompat-v7:26.0.0'
     compile 'com.google.android.gms:play-services:12.0.1'
}
apply plugin: 'com.android.library'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile "com.android.support:mediarouter-v7:26.0.1"
    compile "com.google.android.gms:play-services-cast-framework:12.0.1"

}
    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        flatDir {
            dirs 'libs'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.google.gms:google-services:3.3.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        flatDir {
            dirs 'libs'
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
这是顶级渐变文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "com.warptec.widgets"
        minSdkVersion 17
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        multiDexEnabled true

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

        ndk {
            abiFilters "armeabi-v7a", "x86", "armeabi", "mips"
        }
    }
    lintOptions {
        abortOnError false
        disable "ResourceType", "ValidFragment", "WifiManagerLeak", "MissingTranslation"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.so', '*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
     })
     /**
     * Library file of the SDK, delivered as aar-library
     */
     compile(name: 'wdwsdk-4.0.1', ext: 'aar')
     compile 'com.google.android.exoplayer:exoplayer-core:r2.4.0'
     compile project(':lChainRunnables')
     compile project(':lClosedSource')
     compile project(':lSpoledgeAAC')
     compile project(':IChromecast')
     compile files('libs/Pushwoosh.jar')
     compile 'com.android.support:support-v4:26.0.0-alpha1'
     compile 'com.android.support:appcompat-v7:26.0.0'
     compile 'com.google.android.gms:play-services:12.0.1'
}
apply plugin: 'com.android.library'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile "com.android.support:mediarouter-v7:26.0.1"
    compile "com.google.android.gms:play-services-cast-framework:12.0.1"

}
    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        flatDir {
            dirs 'libs'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.google.gms:google-services:3.3.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        flatDir {
            dirs 'libs'
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

感谢您的帮助。谢谢。

1-将此添加到您的渐变中:

    implementation 'com.android.support:multidex:1.0.3'
allprojects {
  repositories {
   }

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.google.android.gms'
            && !details.requested.name.contains('multidex') ) {
                details.useVersion "12.0.1"
            }
        }
    }
}
}
2-并更改Google PlayService的版本:

 implementation 'com.google.android.gms:play-services-maps:12.0.1'
 implementation 'com.google.android.gms:play-services-auth:12.0.1'
 implementation 'com.google.android.gms:play-services-location:12.0.1'
 implementation 'com.google.android.gms:play-services:12.0.1'
 implementation 'com.google.android.gms:play-services-ads:12.0.1'
3-尝试将其添加到渐变中:

    implementation 'com.android.support:multidex:1.0.3'
allprojects {
  repositories {
   }

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.google.android.gms'
            && !details.requested.name.contains('multidex') ) {
                details.useVersion "12.0.1"
            }
        }
    }
}
}

快乐编码:

谢谢您的帮助。刚刚找到了一个稍微不同的解决方案,但你的也很有趣!