如何解決集成Firebase和FacebookAd包沖突的問(wèn)題

手頭開(kāi)發(fā)的APP集成了Facebook Ad jar 包AudienceNetwork.jar,打算更新到其最新版本4.14.1。

創(chuàng)新互聯(lián)建站是一家專(zhuān)業(yè)提供龍崗企業(yè)網(wǎng)站建設(shè),專(zhuān)注與網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為龍崗眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

刪除本地lib庫(kù)里的老的AudienceNetwork.jar,在app的build.gradle的dependencies里添加

compile ('com.facebook.android:audience-network-sdk:4.14.1')

編譯報(bào)錯(cuò)如下信息:

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':transformClassesWithJarMergingForDebug'.

> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/internal/zzaa.class

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

從duplicate entry看是有重復(fù)的類(lèi)被打包導(dǎo)致Excepion,查閱Gradle文檔,可以排除重復(fù)文件打包,接下來(lái)的問(wèn)題是排查下是哪個(gè)文件有問(wèn)題,從上述信息看,應(yīng)該是從com.google.android.gms下的某個(gè)類(lèi),考慮到之前使用facebook jar單獨(dú)打包并沒(méi)有發(fā)生此問(wèn)題,那么就應(yīng)該是編譯依賴(lài)的4.14.1導(dǎo)致的。

到依賴(lài)倉(cāng)庫(kù)jcenter的老家Jfrog bintray逛逛,搜索facebook,找到audience-network-sdk:4.14.1的對(duì)應(yīng)文件,有2個(gè)分別是aar和pom后綴的文件,我們只看配置文件就好,如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.facebook.android</groupId>

  <artifactId>audience-network-sdk</artifactId>

  <version>4.14.1</version>

  <packaging>aar</packaging>

  <name>Audience-Network-SDK</name>

  <description>Facebook Audience Network SDK for Android</description>

  <url>https://developers.facebook.com/products/app-monetization/audience-network/</url>

  <licenses>

    <license>

      <name>Facebook Platform License</name>

      <url>https://github.com/facebook/facebook-android-sdk/blob/master/LICENSE.txt</url>

      <distribution>repo</distribution>

    </license>

    <license>

      <name>Apache License Version 2.0</name>

      <url>http://www.apache.org/licenses/LICENSE-2.0</url>

      <distribution>repo</distribution>

    </license>

  </licenses>

  <developers>

    <developer>

      <id>facebook</id>

      <name>Facebook</name>

    </developer>

  </developers>

  <scm>

    <url>https://developers.facebook.com/docs/android/downloads</url>

  </scm>

  <dependencies>

    <dependency>

      <groupId>com.google.android.gms</groupId>

      <artifactId>play-services-ads</artifactId>

      <version>8.4.0</version>

      <scope>compile</scope>

    </dependency>

    <dependency>

      <groupId>com.android.support</groupId>

      <artifactId>appcompat-v7</artifactId>

      <version>23.1.0</version>

      <scope>compile</scope>

    </dependency>

    <dependency>

      <groupId>com.android.support</groupId>

      <artifactId>recyclerview-v7</artifactId>

      <version>23.1.0</version>

      <scope>compile</scope>

    </dependency>

  </dependencies>

</project>

顯然,報(bào)錯(cuò)就是在打包play-services-ads時(shí)產(chǎn)生的,因?yàn)樾枰蒄irebase,在build.gradle中添加了

apply plugin: 'com.google.gms.google-services'

導(dǎo)致把google服務(wù)的全家桶都加了進(jìn)來(lái),自然也會(huì)有廣告服務(wù),沖突由此產(chǎn)生。

找到原因就很好解決了,在編譯時(shí)把重復(fù)的去除就可以了。

原build.gradle里依賴(lài)部分:

dependencies {
    compile fileTree(: , : [])
    compile compile compile compile compile 

}

apply :

更新后:

dependencies {
    compile fileTree(: , : [])
    compile compile compile compile compile () {
        exclude : exclude : exclude : }
}

apply :

再次編譯,成功!

文章標(biāo)題:如何解決集成Firebase和FacebookAd包沖突的問(wèn)題
轉(zhuǎn)載來(lái)于:http://bm7419.com/article24/geegje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、軟件開(kāi)發(fā)、品牌網(wǎng)站建設(shè)服務(wù)器托管、App開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司