Android“不幸的是,......已停止” - java.lang.NoClassDefFoundError:com.google.android.gms.R $ string

时间:2016-07-30 09:13:47

标签: android google-maps google-play-services

我正在使用谷歌播放服务和谷歌地图。

当我尝试在设备上调试应用程序(三星S3)时出现此错误,在模拟器上工作正常:

FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.google.android.gms.R$string
                                                                                   at com.google.android.gms.common.internal.zzai.<init>(Unknown Source)
                                                                                   at com.google.firebase.FirebaseOptions.fromResource(Unknown Source)
                                                                                   at com.google.firebase.FirebaseApp.zzeh(Unknown Source)
                                                                                   at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
                                                                                   at android.content.ContentProvider.attachInfo(ContentProvider.java:1214)
                                                                                   at android.content.ContentProvider.attachInfo(ContentProvider.java:1189)
                                                                                   at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                                                   at android.app.ActivityThread.installProvider(ActivityThread.java:5119)
                                                                                   at android.app.ActivityThread.installContentProviders(ActivityThread.java:4725)
                                                                                   at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4665)
                                                                                   at android.app.ActivityThread.access$1400(ActivityThread.java:159)
                                                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1376)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                   at android.os.Looper.loop(Looper.java:176)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5419)
                                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:525)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
                                                                                   at dalvik.system.NativeStart.main(Native Method)

这是我的应用build.gradle

apply plugin: 'com.android.application'

android {

    compileSdkVersion 23
    buildToolsVersion '23.0.0'
    defaultConfig {
        applicationId "it.wifidivision.newsappennino"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 4
        versionName "1.2"

        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile fileTree(dir: 'libs', include: 'Parse-*.jar')
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile 'com.google.android.gms:play-services-maps:9.2.1'
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.google.android.gms:play-services:9.2.1'

    compile 'com.android.support:multidex:1.0.0'
}

这是我的AndroidManifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="it.wifidivision.newsappennino">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-permission android:name="it.wifidivision.newsappennino.permission.MAPS_RECEIVE" />

    <permission
        android:name="it.wifidivision.newsappennino.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />


    <!--
  IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
  to match your app's package name + ".permission.C2D_MESSAGE".
    -->
    <permission
        android:name="it.wifidivision.newsappennino.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    <uses-permission android:name="it.wifidivision.newsappennino.permission.C2D_MESSAGE" />

    <!--
         The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
         Google Maps Android API v2, but you must specify either coarse or fine
         location permissions for the 'MyLocation' functionality. 
    -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />


    <application
        android:name=".NewsAppennino"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- Aggiunto per Parse Push Notifications -->
        <service android:name="com.parse.PushService" />

        <receiver android:name="com.parse.ParseBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.parse.ParsePushBroadcastReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.parse.GcmBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <!-- IMPORTANT: Change "com.parse.starter" to match your app's package name. -->
                <category android:name="it.wifidivision.newsappennino" />
            </intent-filter>
        </receiver>

        <!--
             The API key for Google Maps-based APIs is defined as a string resource.
             (See the file "res/values/google_maps_api.xml").
             Note that the API key is linked to the encryption key used to sign the APK.
             You need a different API key for each encryption key, including the release key that is used to
             sign the APK for publishing.
             You can define the keys for the debug and release targets in src/debug/ and src/release/. 
        -->
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />


        <activity
            android:name=".MappaLuoghi"
            android:label="@string/title_activity_mappa_luoghi" />
        <activity
            android:name=".MappaItinerario"
            android:label="@string/title_activity_mappa_itinerario"></activity>
    </application>

</manifest>

有人可以帮助我吗?

0 个答案:

没有答案