Ошибка после обновления версии SDK до 25

410
02 января 2017, 22:02

Моё приложение использовало GCM сервис пуш уведомления. Всё работало нормально, пока я не обновил недавно версию SDK до 25

Примерно так выглядел файл app gradle:

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    defaultConfig {
        applicationId "com.frienddime.frienddime"
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 107
        versionName "1.2.3"
    }
 ...
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:cardview-v7:23.3.0'
    compile 'com.android.support:recyclerview-v7:23.3.0'
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
    compile 'com.squareup.okhttp3:okhttp:3.2.0'
    compile 'com.vk:androidsdk:+'
    compile 'com.google.android.gms:play-services:8.3.0'
}

И вот после обновления стала вылетать вот эта ошибка. Строка кода, на которую указывает ошибка это как раз то место где сервис регистрации GCM пытается получить токен GCM.

FATAL EXCEPTION: IntentService[]
 java.lang.IllegalAccessError: tried to access method android.support.v4.content.ContextCompat.<init>:(Ljava/lang/String;)V from class com.google.android.gms.iid.zzd
     at com.google.android.gms.iid.zzd.zzdL(Unknown Source)
     at com.google.android.gms.iid.zzd.<init>(Unknown Source)
     at com.google.android.gms.iid.zzd.<init>(Unknown Source)
     at com.google.android.gms.iid.InstanceID.zza(Unknown Source)
     at com.google.android.gms.iid.InstanceID.getInstance(Unknown Source)
     at com.frienddime.frienddime.GCMRegistrationIntentService.registerGCM(GCMRegistrationIntentService.java:31)
     at com.frienddime.frienddime.GCMRegistrationIntentService.onHandleIntent(GCMRegistrationIntentService.java:24)
     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
     at android.os.Handler.dispatchMessage(Handler.java:99)
     at android.os.Looper.loop(Looper.java:137)
     at android.os.HandlerThread.run(HandlerThread.java:60)

Я попробовал поменять compileSdkVersion 25, buildToolsVersion "25.0.0", targetSdkVersion 25. Затем я нашёл в гугле что это дело в compile 'com.google.android.gms:play-services:8.3.0', что мол надо поменять на последнюю версию. Однако я попытался изменить на ту что рекомендовалась 9.8.0, но в результате грэйдл выдал ошибку, что эта версия несовместима с остальными библиотеками. Я попробовал самую последнюю версию 10.0.1, но то же самое. Я поменял версии у com.android.support на 25.1.0 и это тоже не помогло.

Почему происходит данная ошибка и как её решить?

READ ALSO
Консоль не компилируется class файл из java

Консоль не компилируется class файл из java

Не создается файлclass Ошибки в коде точно нет, тестил даже на самом простейшем примере HelloWorld

456
Как обновить данные TextView из Java класса?

Как обновить данные TextView из Java класса?

Есть класс MainActivity реализует интерфейс UpdateView

463
Как добавить Audio звонок?

Как добавить Audio звонок?

Всем приветС Новым годом вас

394
Свой секундомер в игру,способы и имеющиеся в java методы

Свой секундомер в игру,способы и имеющиеся в java методы

Захотелось в игру сделать секундомерЯ представляю это так: системное время идет и я в соответствии с ним выставляю изображения цифр

391