2016-10-20 3 views
0

У меня есть приложение, которое использует API Vision от Google и имеет WebView, который показывает некоторый интернет-контент. Когда файл build.gradle содержит следующую строку:Службы Google Play и странное взаимодействие WebView

компиляции 'com.google.android.gms: играть-услуги: 8+' все компилируется и работает нормально.

Я хочу использовать последнюю версию, так что я изменить его на:

компиляции 'com.google.android.gms: играть-услуги: 9.6.1'

Затем я попал в лимит ссылок на методы 64K в файле .dex. Использование библиотеки multidex и изменение файла манифеста не решает проблему.

Так что я попытался зернистый подход, и изменили строку:

компиляция 'com.google.android.gms: играть-сервисы видение: 9.6.1'

Тогда он компилируется нормально, но при запуске каждая попытка загрузить URL-адрес в WebView, терпит неудачу и вызывается onReceivedError с errorCode -1.

Я не знаю, важно ли это, но фактическое использование WebView выполняется из библиотеки, которая не имеет ничего общего с Play Services.

Может кто-нибудь что-то предложить? Спасибо

ответ

0

Тогда я ударил предел 64К ссылок метода в файле .dex

Потому что она содержит более 56k методы.

com.google.android.gms:play-services-vision:9.6.1 предназначено для мобильного зрения.

я могу помочь вам с получением сверх лимита 64 метода, хотя, выполните указанные ниже действия

Но сначала убедитесь, что у вас есть разрешение

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

и активное подключение к интернету.

Во-первых это в вашем buidl.gradle

dependencies { 
    compile 'com.android.support:multidex:1.0.1' 
} 

затем положить multiDexEnabled true

android { 
    compileSdkVersion 24 
    buildToolsVersion "24.0.1" 

    defaultConfig { 
     ... 
     minSdkVersion 14 
     targetSdkVersion 24 
     ... 

     // Enabling multidex support. 
     multiDexEnabled true 
    } 

} 

Затем перейдите на ваш menifest и в прикладном теге

<application 
    android:name="android.support.multidex.MultiDexApplication"> 

Я надеюсь, что это будет решать ваши проблема.

+0

Я уже сделал эти шаги и не помог, так как я сказал в своем вопросе – Kostas

+0

Я приму свой ответ, поскольку проблема заключалась в недостающем разрешении! При гранулированном подходе мне даже не нужен мультидекс. Но как он загружал URL-адреса игровыми сервисами версии 8 и раньше не имел этой проблемы? – Kostas

+0

часть разрешений для доступа к интернету была немного ошибочной в более старых API, она разрешала соединение большую часть времени без разрешений. Как только я создавал приложение, и в нем были объявления, и после релиза я обнаружил, что для Интернета нет разрешений и реклама работает нормально – Max

Смежные вопросы