我的项目使用以下插件:
几乎每个项目都使用这些插件。
但我已经超过了现场参考人数
我应该如何减少引用计数?
在我看来,公认的答案是不正确的(或者只是部分正确)。导出Android studio不会“神奇地”解决此问题。另外,根据我的经验,导出的Android studio项目并不总是立即构建,在实际构建之前,您必须修复很多东西。
您正在使用大量插件,因此您面临Android限制,无法引用超过64k的方法。
有几件事你可以试着解决这个问题:
那么我应该做些什么来减少引用计数呢?
你有这么多功能/字段的插件。当从Unity的编辑器构建它时有一个限制,并且您已经达到了这个限制。
为了减少引用数量,你必须删除一些这些插件,但我相信你需要它们,在这种情况下删除可能不是合适的解决方案。
目前唯一能真正绕过这个问题并为Android构建的方法是将该项目导出为Android项目,然后使用Android Studio构建它。这消除了Unity编辑器施加的引用限制。
编辑
我忘了提到导出后必须启用multidex。由于很多人每天都会遇到这个问题,我决定添加一个完整的说明,说明如何通过导出来解决这个问题,以及如何在不导出的情况下解决这个问题。
将Unity项目导出为Android项目。
1B。导入Android Studio:
如果导入Android Studio时出现等级错误,如下所示:
错误:org。格拉德尔。应用程序编程接口。内部的任务。无法将DefaultTaskInputs$TaskInputUnionFileCollection强制转换为组织。格拉德尔。应用程序编程接口。内部的文件收藏。DefaultConfigurableFileCollection
在构建中的“buildscript”块中的“dependencies”块中。渐变文件,更改:
classpath 'com.android.tools.build.gradle.2.1.0'
到
classpath 'com.android.tools.build:gradle:2.2.3'
如果导出项目后仍出现相同错误,则需要手动启用multidex。以下是谷歌文档中的简化步骤,将在错误中显示:
2.添加android:name=“android.support.multidex.MultiDexApplication”
3.将编译com.android.support: Multidex: 1.0.1
添加到build.gradle文件中的依赖块。
4.在build.gradle文件的android块中的defaultConfig块中添加MultiDexEn的true
。
建立APK,看看它是否有效。如果引用计数错误消失,请在此处停止。
5.获取如下所示的GC开销异常?
java.lang.OutOfMemoryError:超出GC开销限制
增加执行dex操作时将使用的堆大小。在此解决方案中,将以下内容添加到构建中的“android”块中。渐变文件:
dexOptions {
javaMaxHeapSize "4g"
}
必须具有Unity 5.5及以上版本才能执行此操作:
1.转到
2.转到
3.打开刚刚用Visual Studio复制的
main Template.gradle
和AndroidManifest.xml
文件,然后从上面的FIX BY导出PROJECT指令进行修改。跳过/忽略步骤#1A和#1B。只要做从#2到#5的步骤。就这样了。
这就是最终的
main模板。gradle应该是这样的,这就是最终的AndroidManifest。xml
应该是这样的。这仅供参考。我建议您不要使用我的,而是按照上面的复制步骤创建您的,因为未来的Unity版本可能会附带不同的文件。您希望确保使用最新版本,否则在构建时可能会遇到问题。
4.构建APK,看看它是否工作:
--
如果引用计数错误消失,请在此处停止:
5.得到如下错误?
使用Gradle时,必须签署生成失败版本
只需在生成设置中的发布设置中对apk进行签名。您可以创建新密钥库或使用现有密钥库。
6.像下面这样的另一个错误?
错误:避免硬编码调试模式;省略它允许调试和发布版本自动分配一个[HardcodedDebugMode]
删除android:debuggable=“true”
如果此非导出解决方案不适用于您,则必须使用导出解决方案。
我正在使用cmake Gui构建开罗。当我点击“配置”时,Cmake显示以下错误: 找不到PIXMAN,尝试在系统变量PIXMAN中设置PIXMAN根文件夹的路径(缺少:PIXMAN_LIBRARIESPIXMAN_INCLUDE_DIRS) 找不到ZLIB(缺少:ZLIB_LIBRARYZLIB_INCLUDE_DIR) C:/cmake-3.7.0-rc1-win32-x86/share/cm
我有一个数据帧,看起来像: 我希望按周分组,然后汇总总数。此外,我需要找到一周的最早日期和最晚日期。第一部分相当简单: 我试图找到最小/最大日期,但没有成功: 如何找到出现的最早/最晚日期?
所以,我有这段代码: 我在Windows上运行。有趣的是: > 如果我们使用calloc,程序会分配大约2 GB的内存,然后停止(此处照片= (奇怪的测试):如果我们同时使用这两者,它将使用最大值(~400MB~2GB)/2= 然而,如果我在Linux上运行相同的代码,分配会一直持续下去(在600k分配和使用了许多GB之后,它仍然会继续,直到最终被杀死),并且使用的内存量大致相同。 所以我的问题是
我正在使用Pax考试(3.5.0)进行OSGi单元测试。我已经创建了一个测试,但是当我运行它时,我得到了这个堆栈跟踪: 我已经配置了在选项中,我看到了。 但我还是有例外。有人知道我做错了什么吗? 干杯
我正在用Strapi CMS后端和使用composition API的NuxtJS前端建立一个社区网站。 除了正常的注册和使用电子邮件和用户名登录(有效!),我希望用户能够使用GitHub登录。 我正在使用@nuxtjs/auth模块进行授权。 我已经使用ngrok“部署”了我的Strapi后端。这显然是使OAuth工作所必需的。 我已经设置了我的GitHub应用程序,使用 where? nuxt
剑指ChatGPT,马斯克称要研发“真相GPT”