Google Play服务和WebView奇怪的互动

时间:2016-10-20 09:45:03

标签: android webview google-play-services

我有一个使用Google的Vision API的应用程序,并且有一个显示一些互联网内容的WebView。 当build.gradle文件包含以下行时:

  

编译com.google.android.gms:play-services:8 +'   一切都编译好了。

我想使用最新版本,因此我将其更改为:

  

compile' com.google.android.gms:play-services:9.6.1'

然后我在.dex文件中达到了64K方法引用的限制 使用multidex库并更改我的清单文件,并没有解决它。

所以我尝试了粒度方法,并将行改为:

  

编译com.google.android.gms:play-services-vision:9.6.1'

然后它编译好了,但是在运行时,每次尝试在WebView中加载url, 失败,并使用errorCode -1调用onReceivedError。

我不知道它是否重要,但WebView的实际使用是通过与Play服务无关的库完成的。

有人可以提出一些建议吗? 谢谢

1 个答案:

答案 0 :(得分:0)

  

然后我在.dex文件中达到了64K方法引用的限制

因为它包含的方法超过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
    }

}

然后转到你的清单和你的应用程序标签

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

我希望它能解决你的问题。