2

Использование карт api v2, и он отлично работает с 4.4, 5.0, 5.1, 5.1.1, 6, но приложение падает при попытке 4.2. 2. Я проводил много исследований, но ничего не работает. Вот полный журнал.java.lang.NoClassDefFoundError: com.google.android.gms.common.internal.zzd

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) 

любые идеи?

Here's мой 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:[email protected]' 
    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:[email protected]') { 
     transitive = true; 
    } 
} 
+0

Вы можете также обмениваться внутри build.gradle вашего приложения, пожалуйста? может быть намек :) – dgngulcan

+0

@dgngulcan вот он! – Passerin

+0

, пожалуйста, попробуйте добавить плагин apply: com.google.gms.google-services в вашей внешней области @passerin – dgngulcan

ответ

1

После некоторых исследований и часов тестирования я, наконец, понял, что андроид есть что-то под названием DEX Методы 64K Limit. Простыми словами есть предел, который вы можете достичь при добавлении внешних библиотек в свой проект. Когда вы достигнете этого предела, вам может понадобиться использовать multidex. Лично я решил уменьшить количество импортированных библиотек, поскольку некоторые из них не были действительно использованы или необходимы. Для дальнейшего понимания multidex вы должны прочитать это,

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

13

3 простых шага:

Шаг # 1: Multidexing это новая функция, и поэтому требует библиотеку поддержки, чтобы быть совместимым с предустановленные устройства. Вам нужно добавить следующее к Gradle зависимостей между файлами:

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

Шаг № 2: включить также multidex выход в вашем Gradle файле:

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> 

Примечание: Если ваше приложение уже использует (расширяет) класс приложения, вы можете переопределить метод 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

+1

Спасибо, что вы сделали мой день –

0

я столкнулся этот вопрос, я решил, что только путем изменения 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**'