Facebook-sdk-for-unity: 无法使用 facebook-unity-sdk-7.13.0 构建

创建于 2018-07-27  ·  4评论  ·  资料来源: facebook/facebook-sdk-for-unity

嗨,我正在尝试将最新的 facebook SDK 添加到我的项目中,但我没有成功构建。 这需要几天时间。 我修复了几个问题,例如 Multidex 问题。 此外,即使我将构建系统更改为内部,我也无法在 Unity 中构建“.apk”。 它根本不起作用,但我唯一能做的就是导出 Android 项目文件。


我在 MacBook Air Sierra 10.12.6 上运行 Unity 2017.3.0f3
这是一个带有多个插件的应用程序:
-FB SDK
-OpenCV
-谷歌分析

从导出的 Android 项目文件中,我收到以下错误:

org.gradle.api.tasks.TaskExecutionException:任务“:packageDebug”的执行失败。
在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
在 org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
在 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
在 org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
在 org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
在 org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
在 org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
在 org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
在 org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
在 org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
在 org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
在 org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
在 org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
在 org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
在 org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
在 org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
在 org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
在 java.lang.Thread.run(Thread.java:748)
引起:java.lang.OutOfMemoryError: Java heap space
在 java.util.Arrays.copyOf(Arrays.java:3236)
在 java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
在 java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
在 java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
在 com.google.common.io.ByteStreams.copy(ByteStreams.java:74)
在 com.google.common.io.ByteStreams.toByteArray(ByteStreams.java:115)
在 com.android.apkzlib.zip.StoredEntry.read(StoredEntry.java:327)
在 com.android.apkzlib.sign.SignatureExtension.setDigestForEntry(SignatureExtension.java:496)
在 com.android.apkzlib.sign.SignatureExtension. added(SignatureExtension.java:484)
在 com.android.apkzlib.sign.SignatureExtension.access$100(SignatureExtension.java:97)
在 com.android.apkzlib.sign.SignatureExtension$1.lambda$ added$1(SignatureExtension.java:311)
在 com.android.apkzlib.sign.SignatureExtension$1$$Lambda$362/1955733384.run(来源不明)
在 com.android.apkzlib.zip.ZFile.notify(ZFile.java:2023)
在 com.android.apkzlib.zip.ZFile.addToEntries(ZFile.java:1674)
在 com.android.apkzlib.zip.ZFile.processAllReadyEntries(ZFile.java:1615)
在 com.android.apkzlib.zip.ZFile.add(ZFile.java:1572)
在 com.android.apkzlib.zip.ZFile.add(ZFile.java:1553)
在 com.android.apkzlib.zfile.ApkZFileCreator.writeFile(ApkZFileCreator.java:141)
在 com.android.builder.internal.packaging.IncrementalPackager.updateFiles(IncrementalPackager.java:172)
在 com.android.builder.internal.packaging.IncrementalPackager.updateAssets(IncrementalPackager.java:231)
在 com.android.build.gradle.tasks.PackageAndroidArtifact.doTask(PackageAndroidArtifact.java:553)
在 com.android.build.gradle.tasks.PackageAndroidArtifact.doFullTask​​Action(PackageAndroidArtifact.java:360)
在 com.android.build.gradle.tasks.PackageApplication.doFullTask​​Action(PackageApplication.java:56)
在 com.android.build.gradle.internal.tasks.IncrementalTask​​.taskAction(IncrementalTask​​.java:88)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
在 org.gradle.api.internal.project.taskfactory.IncrementalTask​​Action.doExecute(IncrementalTask​​Action.java:46)
在 org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
在 org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)



我的“Build.gradle”是:
构建脚本{
存储库{
jcenter()
}

dependencies {
    classpath 'com.android.tools.build:gradle:2.3.0'
}

}

所有项目{
存储库{
平面目录{
目录'库'
}
}
}

应用插件:'com.android.application'

依赖{
编译文件树(目录:'libs',包括:['*.jar'])
编译(名称:'cameraplugin-release',ext:'aar')
编译(名称:'com.android.support.animated-vector-drawable-25.3.1',分机:'aar')
编译(名称:'com.android.support.appcompat-v7-25.3.1',分机:'aar')
编译(名称:'com.android.support.cardview-v7-25.3.1',分机:'aar')
编译(名称:'com.android.support.customtabs-25.3.1',分机:'aar')
编译(名称:'com.android.support.support-compat-25.3.1',分机:'aar')
编译(名称:'com.android.support.support-core-ui-25.3.1',分机:'aar')
编译(名称:'com.android.support.support-core-utils-25.3.1',分机:'aar')
编译(名称:'com.android.support.support-fragment-25.3.1',分机:'aar')
编译(名称:'com.android.support.support-media-compat-25.3.1',分机:'aar')
编译(名称:'com.android.support.support-v4-25.3.1',分机:'aar')
编译(名称:'com.android.support.support-vector-drawable-25.3.1',分机:'aar')
编译(名称:'facebook-android-wrapper-7.12.1',分机:'aar')
编译(名称:'facebook-applinks',分机:'aar')
编译(名称:'facebook-common',分机:'aar')
编译(名称:'facebook-core',分机:'aar')
编译(名称:'facebook-登录',分机:'aar')
编译(名称:'facebook-messenger',分机:'aar')
编译(名称:'facebook-places',分机:'aar')
编译(名称:'facebook-share',分机:'aar')
编译'com.android. 支持:multidex :1.0.1'
}

安卓 {
compileSdkVersion 27
buildToolsVersion '27.0.3'

defaultConfig {
    minSdkVersion 21
    targetSdkVersion 27
    applicationId 'xx.xx.xx'
    multiDexEnabled true
}

dexOptions {
    javaMaxHeapSize "4g"
}

lintOptions {
    abortOnError false
}

aaptOptions {
    noCompress '.unity3d', '.ress', '.resource', '.obb','bin/data/119e64b2680dc45e78dfe6bcfd17e4de.resource','bin/data/1915cec10840248268bcaeb9ff456118.resource','bin/data/19e69ca3d43a04c949b1168c7bcdc0e2.resource','bin/data/1b3ee61ae9a7f4b5ea153f71ef18b624.resource','bin/data/28d2b5485b9e74a69b6f11e67a881bd1.resource','bin/data/2d1a051de8c0f41de8319ccb14d7c925.resource','bin/data/70814ceeb34b34074978e5e3f254ff30.resource','bin/data/75b1e0db08b2a4f4abb29f8312fcd2e2.resource','bin/data/8dc7c709203164f968bfcd1d0797acba.resource','bin/data/cb77cc94747a542318560dd2cb944c60.resource','bin/data/cccfad642c35d45aaa00538039dbf4d3.resource','bin/data/da6a186e6c5a446c18feaf72ba32f81e.resource','bin/data/dd33f4a1556654fb2b551867c6eec659.resource','bin/data/sharedassets0.resource'
}


buildTypes {
    debug {
        minifyEnabled false
        useProguard false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
        jniDebuggable true
    }
    release {
        minifyEnabled false
        useProguard false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
        signingConfig signingConfigs.debug
    }
}

}




我确实在项目“Gradle.properties”中将 Gradle 守护程序的最大堆大小增加到 4608 MB,并清理项目和构建,但它没有用。

当我谷歌关于 FaceBook SDK for Unity 构建问题时,每个人似乎都有同样的麻烦。
任何信息我都会很感激。

最有用的评论

谢谢你的解决方案。 我必须使用 Unity 2017.3.0f3,我使用 Unity 2017.3.0f3 完成了您的解决方案。 我还没有取得成功,但我已经和我的客户谈过了,我们放弃了。
谢谢你的时间,先生!!!

所有4条评论

解决将 Google Play Services 0.95 和 Facebook sdk 7.13.0 插件添加到 Unity 2018.2.0f2 时的 Dex 问题

第一步:首先从这个链接https://github.com/playgameservices/play-games-plugin-for-unity导入GooglePlayServices0.95插件

第 2 步:当显示要导入的文件夹结构时,取消选中 PlayServicesResolver 文件夹。

第 3 步:现在从https://developers.facebook.com/docs/unity/downloads/导入 Facebook SDK 7.13.0 统一包

第 4 步:在这里导入 facebook sdk 插件的所有文件夹。

第 5 步:现在选择 Assets/PlayServicesResolver/VersionHandler/Update

第 6 步:现在选择 Assets/PlayServicesResolver/AndroidResolver/Resolve

第 7 步:现在选择 Assets/PlayServicesResolver/AndroidResolver/Settings,然后取消选中 Enable Auto-Resolution

第 8 步:现在转到项目面板并转到 Assets/Plugins/Android/ 并删除除名称为“com.google.games.gpgs-plugin-support-0.9.50”的文件夹之外的所有文件夹

第 9 步:现在转到项目面板并转到 Assets/Plugins/Android/ 并删除以下文件

com.android.support.animated-vector-drawable-25.3.1
com.android.support.customtabs-25.3.1
com.android.support.support-annotations-25.3.1
com.android.support.support-v4-25.3.1
com.android.support.support-vector-drawable-25.3.1

现在继续构建制作。 它应该工作。 :)

谢谢你的解决方案。 我必须使用 Unity 2017.3.0f3,我使用 Unity 2017.3.0f3 完成了您的解决方案。 我还没有取得成功,但我已经和我的客户谈过了,我们放弃了。
谢谢你的时间,先生!!!

无法解决问题

对我不起作用:{

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

alchemyincarnate picture alchemyincarnate  ·  4评论

edscodeblenders picture edscodeblenders  ·  4评论

Shaitan1805 picture Shaitan1805  ·  6评论

pvalium picture pvalium  ·  6评论

MorganMoon picture MorganMoon  ·  7评论