web-dev-qa-db-ja.com

java.lang.NoClassDefFoundError:com.google.Android.gms.common.internal.zzd

Maps api v2を使用すると、4.4、5.0、5.1、5.1.1、6で完全に機能しますが、4.2.2を試してみるとアプリがクラッシュします。私はたくさんの研究をしてきましたが、何もうまくいかないようです。これが完全なログです。

FATAL EXCEPTION: main
     Java.lang.NoClassDefFoundError: com.google.Android.gms.common.
         at com.google.Android.gms.measurement.internal.zzk$zza.get(
         at com.google.Android.gms.measurement.internal.zzc.zzkG(
         at com.google.Android.gms.measurement.internal.zzr.<init>(
         at com.google.Android.gms.measurement.internal.zzx.zzb(
         at com.google.Android.gms.measurement.internal.zzt.<init>(
         at com.google.Android.gms.measurement.internal.zzx.zzBQ(
         at com.google.Android.gms.measurement.internal.zzt.zzaU(
         at com.google.Android.gms.measurement.ource)
         at Android.content.ContentProvider.attachInfo(ContentProvider
         at Android.app.ActivityThread.installProvider(ActivityThread.
         at Android.app.ActivityThread.installContentProviders(
         at Android.app.ActivityThread.handleBindApplication(
         at Android.app.ActivityThread.access$1300(ActivityThread.
         at Android.app.ActivityThread$H.handleMessage(ActivityThread.
         at Android.os.Handler.dispatchMessage(Handler.Java:99)
         at Android.os.Looper.loop(Looper.Java:137)
         at Android.app.ActivityThread.main(ActivityThread.Java:5041)
         at Java.lang.reflect.Method.invokeNative(Native Method)
         at Java.lang.reflect.Method.invoke(Method.Java:511)
         at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run
         at com.Android.internal.os.ZygoteInit.main(ZygoteInit.
         at dalvik.system.NativeStart.main(Native Method)

何か案は?

これが私のbuild.gradleです

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.Android.application'
apply plugin: 'io.fabric'

repositories {
    mavenCentral()
    maven {
        url "http://dl.bintray.com/glomadrian/maven"
    }
    maven { url 'https://maven.fabric.io/public' }
}

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "py.com.roshka.billeterabancard"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.wang.avi:library:1.0.1'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.github.glomadrian:loadingballs:1.1@aar'
    compile 'com.Android.support:appcompat-v7:23.1.0'
    compile 'com.google.Android.gms:play-services:8.4.0'
    compile 'com.Android.support:design:23.1.0'
    compile 'com.Android.support:recyclerview-v7:23.1.0'
    compile 'com.squareup.okio:okio:1.0.+'
    compile 'com.squareup.okhttp:okhttp:1.5.4'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
    compile 'com.squareup.retrofit:retrofit:1.8.0'
    compile 'com.pnikosis:materialish-progress:1.7'
    compile 'com.google.code.gson:gson:2.3'
    compile 'me.dm7.barcodescanner:zxing:1.8.3'
    compile 'me.dm7.barcodescanner:zbar:1.8.3'
    compile('com.crashlytics.sdk.Android:crashlytics:2.5.5@aar') {
        transitive = true;
    }
}
5
Passerin

いくつかの調査と数時間のテストの後、私はついにAndroidにはDEX64Kメソッド制限と呼ばれるものがあることに気付きました。簡単に言えば、プロジェクトに外部ライブラリを追加するときに到達できる制限があります。その制限により、multidexを使用する必要があるかもしれません。個人的には、ライブラリの一部が実際には使用されていないか、必要ないため、インポートするライブラリの量を減らすことにしました。multidexの詳細については、こちらをお読みください。

http://developer.Android.com/tools/building/multidex.html

4
Passerin

3つの簡単なステップ:

ステップ1:マルチデキシングは新機能であるため、ロリポップ以前のデバイスと互換性のあるサポートライブラリが必要です。 Gradleファイルの依存関係に以下を追加する必要があります。

compile 'com.Android.support:multidex:1.0.0'

ステップ2:gradleファイルでmultidex出力も有効にします。

Android {
compileSdkVersion 21
buildToolsVersion "21.1.0"

defaultConfig {
    ...
    minSdkVersion 14
    targetSdkVersion 21
    ...

    // Enabling multidex support.
    multiDexEnabled true
   }
}

ステップ3:次に、multidexサポートアプリケーションをマニフェストに追加します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.example.Android.multidex.myapplication">
<application
    ...
    Android:name="Android.support.multidex.MultiDexApplication">
    ...
</application>

注:アプリがすでにApplicationクラスを使用(拡張)している場合は、attachBaseContext()メソッドをオーバーライドし、MultiDex.install(this)を呼び出して有効にすることができますmultidex。詳細については、MultiDexApplicationリファレンスドキュメントを参照してください。

@Override
protected void attachBaseContext(Context context) {
    super.attachBaseContext(context);
    MultiDex.install(this);
}

参照用の同じ手順は次のとおりです。 https://developer.Android.com/tools/building/multidex.html

16
Shirish Herwade

Gradleファイルの依存関係に以下を追加する必要があります。

compile 'com.applozic.communication.uiwidget:mobicomkitui:5.8.4'
0
Mr_Moradi

Gradleファイルの依存関係に以下を追加する必要があります。

compile 'com.applozic.communication.uiwidget:mobicomkitui:5.8.4'

プロジェクトを同期します

0
Mr_Moradi

この問題に直面しましたが、gradleのバージョンを変更するだけで解決しました。この問題は、Googleの更新が原因で発生します。gradleファイルに変更すると、以下に説明するように正常に実行されます。

compile 'com.google.Android.gms:play-services-auth:10.0.1'
compile 'com.google.Android.gms:play-services-gcm:10.0.1'
compile 'com.google.Android.gms:play-services:10.0.1'
compile 'com.Android.support:support-v4:25.1.0'
compile 'com.Android.support:appcompat-v7:25.1.0'
compile 'com.Android.support:support-annotations:25.1.0'

Change the Gradle files to

compile 'com.google.Android.gms:play-services-auth:**11.0.4**'
compile 'com.google.Android.gms:play-services-gcm:**11.0.4**'
compile 'com.google.Android.gms:play-services:**11.0.4**'
compile 'com.Android.support:support-annotations:**25.3.1**'
compile 'com.Android.support:support-v4:**25.3.1**'
compile 'com.Android.support:appcompat-v7:**25.3.1**'
0
Devloper Tamil