Ker*_*man 11 android unity-game-engine android-multidex
我的项目使用这些插件:
几乎每个项目都使用这些插件.
但我超过现场参考计数
我该怎么做才能减少参考数量?
Pro*_*mer 31
那么我该怎么做才能减少参考数量呢?
你有很多插件,有很多功能/字段.从Unity的编辑器中构建它时有一个限制,你已经达到了这个限制.
要减少引用计数,您必须删除一些这些插件,但我确定您需要它们,并且在这种情况下删除可能不是合适的解决方案.
此时实际解决此问题并为Android构建的唯一方法是将项目导出为Android项目,然后使用Android Studio构建它.这将删除Unity编辑器强加的参考限制.
编辑
我忘了提到你必须在导出后启用multidex.由于很多人每天都会遇到这个问题,所以我决定添加一个关于如何通过导出问题来解决这个问题的详尽说明,以及如何在不导出问题的情况下修复它.
1A.将Unity项目导出为Android项目.
1B.导入Android Studio:
如果您在导入Android Studio时出现等级错误,如下所示:
错误:org.gradle.api.internal.tasks.DefaultTaskInputs $ TaskInputUnionFileCollection无法强制转换为org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection
在build.gradle文件的"buildscript"块中的"dependencies"块中,更改:
classpath 'com.android.tools.build.gradle.2.1.0'
Run Code Online (Sandbox Code Playgroud)
至
classpath 'com.android.tools.build:gradle:2.2.3'
Run Code Online (Sandbox Code Playgroud)
如果导出项目并仍然得到相同的错误,则需要手动启用multidex.以下是Google 文档中的简化步骤,该文档将在错误中显示给您:
2.新增android:name="android.support.multidex.MultiDexApplication" >
的
应用在标签的AndroidManifest.xml文件.
3.新增compile 'com.android.support:multidex:1.0.1'
的"依赖"的块的build.gradle文件.
4.新增multiDexEnabled true
到"defaultConfig"块是在所述"机器人"块的build.gradle文件.
构建APK,看看它是否有效.如果引用计数错误消失,请在此处停止.
5.获取如下所示的GC开销异常?
java.lang.OutOfMemoryError:超出了GC开销限制
增加执行dex操作时将使用的堆大小.从此解决方案,将以下内容添加到build.gradle文件中的"android"块:
dexOptions {
javaMaxHeapSize "4g"
}
Run Code Online (Sandbox Code Playgroud)
必须具有Unity 5.5及更高版本才能执行此操作:
1.转到<UnityInstallationDirecory>\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates
,将mainTemplate.gradle
文件复制到您的<ProjectName>Assets\Plugins\Android
文件夹.
2.转到<UnityInstallationDirecory>\Editor\Data\PlaybackEngines\AndroidPlayer\Apk
,将AndroidManifest.xml
文件复制到您的<ProjectName>Assets\Plugins\Android
3.开均mainTemplate.gradle
和AndroidManifest.xml
文件,您只需使用Visual Studio复制然后从做修改FIX通过导出项目上面的指令.跳过/忽略步骤#1A和#1B.只需从#2到#5执行步骤.而已.
这就是决赛的mainTemplate.gradle
样子,这就是决赛的AndroidManifest.xml
样子.这仅供参考.我建议你不要使用我的,而是按照上面的复制步骤创建你的,因为未来的Unity版本可以带有不同的文件.您想确保使用最新版本,否则可能会遇到问题.
4.建立APK并查看它是否有效:
-
如果引用计数错误消失,请在此处停止:
5.获得如下所示的错误?
使用Gradle时必须签署构建失败版本构建
只需在Build Settings中的Publishing Settings中签名 apk即可.您可以创建新密钥库或使用现有密钥库.
6.下面的另一个错误?
错误:避免硬编码调试模式; 将其删除允许调试和发布版本自动分配一个[HardcodedDebugMode]
android:debuggable="true">
从AndroidManifest.xml
文件中删除.
如果此非导出解决方案不适合您,则必须使用导出解决方案.
IMO,接受的答案不正确(或仅部分正确).导出Android工作室不会"神奇地"修复此问题.此外,根据我的经验,导出的Android工作室项目并不总是立即构建,您必须先修复很多东西才能实际构建它.
您正在使用大量插件,因此您遇到了Android限制,无法引用超过64k的方法.
您可以尝试解决此问题:
归档时间: |
|
查看次数: |
18380 次 |
最近记录: |