Unity,Android Studio导出:错误:包含名称为'android.support.v7.appcompat'的多个库

时间:2017-05-23 14:37:53

标签: android facebook firebase unity3d appodeal

我正在Unity中制作一个非常简单的移动F2P街机游戏 在为facebook,gamesparks,firebase和appodeal添加SDK后,我无法构建,获得“Too many methods references:76221; max is 65536”错误。

来自Too many field references: 70613; max is 65536的解决方案显然是导出ADT项目,将其导入Android工作室并从那里开始。

我构建了以下these instructions,在构建我的Android工作室项目之后,与facebook SDK相关的错误类似于此处:Unity exporting android project with Facebook SDK issue

提出的解决方案是将所有.aar从Unity项目复制到文件到Android工作室项目,并将行添加到引用它们的build.gradle文件中,我做了。

完成所有这4个与Facebook相关的错误消失后,又出现了一个新错误:

  

错误:多个包名为'android.support.v7.appcompat

的库

A proposed solution for that是搜索有问题的文件并在Windows资源管理器中将其删除,但我的Android工作室项目文件夹中没有该名称。我尝试用名称中的appcompat删除一些.aar文件,但最终还是恢复到之前的4个facebook错误

似乎我可能有4个facebook错误或“多个库”错误。

这是我的build.gradle文件的样子..

    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 25
        buildToolsVersion "25.0.3"

        defaultConfig {
            applicationId "com.ARTEFICER.fruitfall"
            minSdkVersion 16
            targetSdkVersion 25
        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
    }

    dependencies {
        compile(name: 'animated-vector-drawable-23.4.0', ext: 'aar')
        compile(name: 'appcompat-v7-23.4.0', ext: 'aar')
        compile(name: 'cardview-v7-23.4.0', ext: 'aar')
        compile(name: 'customtabs-23.4.0', ext: 'aar')
        compile(name: 'facebook-android-sdk-4.17.0', ext: 'aar')
        compile(name: 'facebook-android-wrapper-7.9.4', ext: 'aar')
        compile(name: 'firebase-app-unity-3.0.3', ext: 'aar')
        compile(name: 'firebase-common-10.2.6', ext: 'aar')
        compile(name: 'firebase-iid-10.2.6', ext: 'aar')
        compile(name: 'firebase-messaging-10.2.6', ext: 'aar')
        compile(name: 'firebase-messaging-unity-3.0.3', ext: 'aar')
        compile(name: 'play-services-ads-10.2.6', ext: 'aar')
        compile(name: 'play-services-ads-lite-10.2.6', ext: 'aar')
        compile(name: 'play-services-base-10.2.6', ext: 'aar')
        compile(name: 'play-services-basement-10.2.6', ext: 'aar')
        compile(name: 'play-services-clearcut-10.2.6', ext: 'aar')
        compile(name: 'play-services-gass-10.2.6', ext: 'aar')
        compile(name: 'play-services-location-10.2.6', ext: 'aar')
        compile(name: 'play-services-tasks-10.2.6', ext: 'aar')
        compile(name: 'support-compat-25.2.0', ext: 'aar')
        compile(name: 'support-core-ui-25.2.0', ext: 'aar')
        compile(name: 'support-core-utils-25.2.0', ext: 'aar')
        compile(name: 'support-fragment-25.2.0', ext: 'aar')
        compile(name: 'support-media-compat-25.2.0', ext: 'aar')
        compile(name: 'support-v4-25.2.0', ext: 'aar')
        compile(name: 'support-vector-drawable-23.4.0', ext: 'aar')
        compile project(':animatedvectordrawable2340')
        compile project(':cardviewv72340')
        compile project(':cheetahmobile')
        compile project(':customtabs2340')
        compile project(':facebookandroidsdk4170')
        compile project(':facebookandroidwrapper794')
        compile project(':firebase')
        compile project(':firebaseappunity303')
        compile project(':firebasecommon1026')
        compile project(':firebaseiid1026')
        compile project(':firebasemessaging1026')
        compile project(':firebasemessagingunity303')
        compile project(':playservicesads1026')
        compile project(':playservicesadslite1026')
        compile project(':playservicesbase1026')
        compile project(':playservicesclearcut1026')
        compile project(':playservicesgass1026')
        compile project(':playserviceslocation1026')
        compile project(':playservicestasks1026')
        compile project(':supportcompat2520')
        compile project(':supportcoreui2520')
        compile project(':supportcoreutils2520')
        compile project(':supportfragment2520')
        compile project(':supportmediacompat2520')
        compile project(':supportv42520')
        compile project(':supportvectordrawable2340')
        compile 'com.google.android.gms:play-services:+'
        compile 'com.android.support:appcompat-v7:25.3.1'
        compile files('libs/applovin-6.3.0.jar')
        compile files('libs/appodeal-1.15.9.jar')
        compile files('libs/bolts-android-1.4.0.jar')
        compile files('libs/bolts-applinks-1.4.0.jar')
        compile files('libs/bolts-tasks-1.4.0.jar')
        compile files('libs/chartboost-6.6.1.jar')
        compile files('libs/flurry-analytics-6.5.0.jar')
        compile files('libs/libmessaging_unity_player_activity.jar')
        compile files('libs/my-target-4.5.10.jar')
        compile files('libs/support-annotations-25.2.0.jar')
        compile files('libs/unity-ads-2.0.4.jar')
        compile files('libs/unity-classes.jar')
        compile files('libs/yandex-metrica-2.62.jar')
    }

    allprojects {
       repositories {
          jcenter()

          flatDir {
            dirs 'libs'
          }
       }
    }

我试过评论这些内容。

compile 'com.android.support:appcompat-v7:25.3.1'

compile project(':supportcompat2520')

compile(name: 'support-compat-25.2.0', ext: 'aar')

但我仍然有一个'包含名称的多个库'错误

另请注意我是Unity开发者。我几天前从未打开Android Studio,所以你肯定需要尽可能地愚蠢的事情!

2 个答案:

答案 0 :(得分:1)

ADT已弃用。最新版本的Unity支持gradle。生成Android Project时,使用Gradle(New)otion构建并使用Android Studio打开Project。不要使用ADT(Legacy)选项构建。这将为您生成正确的文件,并可能会使您遇到错误或减少错误。

enter image description here

答案 1 :(得分:-1)

我还没有解决这个问题。但是我已经绕过了它。

  1. Appodeal有另一个包含较少方法的SDK包

  2. 我删除了此appodeal SDK的部分内容。他们为每个使用的广告提供商提供了库。我将从我删除了库的广告提供商处取消注册。

  3. 这样我就可以将方法设置为低于65536,因此我可以从Unity中正常构建。

    PS。即使我能够让这个导出工作,我也会将它留在分支中,完成其他所有内容,并在我要发布时将其合并到最后。以这种方式构建工作本来是站不住脚的,因为某些事情(比如facebook)只会在设备上运行,所以我通常会建立设备,比如每小时一次。