unity3d开发过程中的疑难问题解决方案(持续更新)

目录

1.android studio在build过程中依赖项下载慢,**后也慢的问题

2.解决unity接入ironsource sdk中的chartboost广告源报错:NETWORK_FAILURE没有广告的问题

3.如果项目在手机运行的第一时间管用户要了很多权限,导致用户反感,用户选择拒绝某权限,出现广告加载、留存等问题,导致收益影响,可参考下面链接把申请权限修改为动态申请,等程序需要用到权限的时候再去询问用户权限

4.xcode工程报错".entitlements"找不到的解决办法记录

5.unity导出xcode工程pods失败的解决方案和pods install慢的问题

6.xcode添加证书后报错

7.unity接入ironsource导出xcode后,两个同名文件造成冲突

8.xcode打包ipa到fir.im等内测分发平台的方式

9.TopOn与红包激励卡冲突,激励卡展示函数走不完就会发生程序崩溃闪退

10.TopOn原生广告设置参数无作用的解决方案

11.unity中使用android resolver出现resolve秒succeeded的情况,而且没有自动导入任何jar、aar依赖、并自动删除了一些已经导入的jar、aar

12.unity中使用android resolver出现resolve后mainTemplate.gradle被截断

13.xcode接完firebase推送后,icon上的消息数量打开app 不消失

14.安卓获取sha1值

15.遇到appstore回复不再支持UIWebView而被秒拒的问题

16.打包安卓后出现网络请求出现无法请求

17.当ios打包大量报swiftXX未定义的的情况下

18.unity发布到ios后iphone x、iphone 11等刘海屏,和iphone14pro、14pm灵动岛适配问题

19.ironsource的部分广告元崩溃问题

20.Umeng打点需要等Umeng初始化完成之后才可以打点,否则程序在真机上(目前只试过ios)会崩溃闪退。

21.在提审ios包的时候(我出现此问题是使用transporter工具上传的时候报错),如有遇到xxxx-x86、xxx-x64、x86-64等关键词的报错内容,并不清楚是咋回事的时候,可尝试此解决方案

22.Firebase接入A/B Test,build as project打包过程中报错Failed to resolve:xxxxxxx

23.对接flurry安卓运行报错的问题

24.AF从V4版本升级到V5、V6时出现和is的vungle有冲突的问题

25.接入AF sdk在build过程中报错

26.使用终端clone github太慢的解决方案

27.Unity编译时找不到AndroidSDK的问题 | Unable to list target platforms

28.解决AndroidStudio下载gradle慢的问题

29.上使用transporter上传ipa,上传成功但是弹出警告WARNING ITMS-90109: "This bundle is invalid. The key UIRequiredDeviceCapabilities in the Info.plist may not contain values that would prevent this application from running on devices that were supported by previous versions. Refer to QA1623 for additional information: Documentation Archive"

30.unity项目在ios中播放广告时的广告声音和游戏声音重叠的问题

31.Android Studio打包报错:More than one file was found with OS independent path 'kotlin/collections/MapWithDefault.kotlin_metadata'

32.unity接入max广告平台后真机运行时调用广告报错(插屏、激励视频)

报错内容关键词为:

ALAdServerAd、adUnitIdentifier、ALAd等错误时

33.firebase_crashlytics缺失dSYM unity ios

34.Unity3d使用Spine SkeletonGraphic(UGUI)时需要注意的坑,仅安卓真机会出问题!

35.android studio编译报错,关键词mtg、mintegral

36.使用ParticleEffectForUGUI插件后,部分特效出现被剔除的bug

37.mac安装homebrew

38.2021 mac安装cocoapods

39.接入maxsdk和fb广告源后,ios在运行时出现FBAdConfigManager、ALSdk、AppLovinSdk ERROR的报错、崩溃,并且不能调用广告

40.max调试器(MAX Mediation Debugger)中的Ad Review Version报错

41.使用max聚合,调用激励视频后没有回调

42.as安卓打包报错Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.

43.对接max sdk后,打包ios进入max调试器测试每个广告源,提示需要重启,第二次启动后进入max调试器后app崩溃,并有如下log:

44.android studio打包过程中报错,报错内容:

45.打包到and运行后报错,提示StringEnumConverter相关报错(可能ios也有)

46.解决sourcetree频繁要求输入Git密码的方法

47.在xcode中第一次build成功,第二次就会提示如下错误信息,并且打包失败

48.在unity接入max sdk后,引入最新的MTG(之前没问题,升级后就不行了)广告元后,as工程打包报错的bug

49.unity build为xcode工程后,在打包ipa的签名阶段出现错误

50、windows系统下,unity激活总是无法成功时,试试以下方法(尤其是曾经破解过unity的电脑)。


1.android studio在build过程中依赖项下载慢,**后也慢的问题

打开**,然后在android studio的File->settings->Http Proxy中做如下设置,选择HTTP,Host name为127.0.0.1,Port number设置为**的HTTP/HTTPS 端口号

android studio的设置

重新build一般即可解决

如果还是下载很慢,可以再在android studio项目中的gradle.properties中写入(如图),注意,把“1090”修改为你的**的SOCKS5监听端口号,再重新build基本可以解决问题

org.gradle.jvmargs=-Xmx4096M -Dfile.encoding=UTF-8 -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1090


2.解决unity接入ironsource sdk中的chartboost广告源报错:NETWORK_FAILURE没有广告的问题

报错截图:

解决方案:

需要在gradle里增加四句话(is没有提供,chartboost技术说的)

IS的Chartboost广告源报错:NETWORK_FAILURE 时尝试在gradle增加如下四句:

implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
implementation 'com.google.android.gms:play-services-base:17.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'

3.如果项目在手机运行的第一时间管用户要了很多权限,导致用户反感,用户选择拒绝某权限,出现广告加载、留存等问题,导致收益影响,可参考下面链接把申请权限修改为动态申请,等程序需要用到权限的时候再去询问用户权限

【Unity游戏开发】Android6.0以上的动态权限申请问题 - 马三小伙儿 - 博客园


4.xcode工程报错".entitlements"找不到的解决办法记录

解决方案:在别的项目里面copy过这个文件到本项目的根目录即可,这个文件是记录工程中使用那些功能的文件,出现这个问题可能是因为此文件损坏或者丢失了


5.unity导出xcode工程pods失败的解决方案和pods install慢的问题

1.pods使用方式:终端cd到工程根目录,执行pod install
2.pods install太慢的解决方案:
  https://www.jianshu.com/p/9e7cb7c722b2
  https://www.cnblogs.com/agang-php/p/10618299.html
  https://blog.csdn.net/yyws2039725/article/details/90675347
  https://www.jianshu.com/p/ef35a1eef95d

比较有用的一句话:终端设置走**,端口号用**的设置里面的端口号
方法一:
在终端执行export all_proxy=socks5://127.0.0.1:{socks5监听端口号}
如:export all_proxy=socks5://127.0.0.1:1090
方法二:
在终端执行export http_proxy=127.0.0.1:41091 https_proxy=127.0.0.1:41091
注:41091 是本地HTTP/HTTPS监听端口, 根据**设置里面端口数进行设置即可,HTTP/HTTPS默认端口41091

3.如果还失败进行更换网络多次尝试(其他同事遇到过这个问题,多次尝试后成功)

6.xcode添加证书后报错

第一个错误尝试重启xcode

第二个错误是没有把真机添加成测试设备


7.unity接入ironsource导出xcode后,两个同名文件造成冲突

错误原因是因为pod文件重复下载相同文件,is的Facebook模块新版为自动在pod里面添加FBaudienceNetwor,建议使用老版本。


8.xcode打包ipa到fir.im等内测分发平台的方式

Step1: 新建“Payload”文件夹,注意名字要一字不差;

Step2: 将你的.app包放到Payload中,注意app的名字不做任何更改,就用xcode生成的app名称;(在dev环境下真机调试后会在xcode的products文件夹下自动生成.app)

Step3: 在Payload文件夹上右键压缩成zip,然后将生成的.zip文件后缀改成.ipa即可上传


9.TopOn与红包激励卡冲突,激励卡展示函数走不完就会发生程序崩溃闪退

解决方案:避免在广告结束时紧接着调用激励卡展示逻辑;可是使用协程适当延迟时间(我延迟了0.5f), 避免发生崩溃。


10.TopOn原生广告设置参数无作用的解决方案


11.unity中使用android resolver出现resolve秒succeeded的情况,而且没有自动导入任何jar、aar依赖、并自动删除了一些已经导入的jar、aar

解决方案:请检查是否使用了unity的mainTemplate.gradle,如果启用了,请进入android resolver -> settings,关闭patch mainTemplate.gradle选项


12.unity中使用android resolver出现resolve后mainTemplate.gradle被截断

尝试把mainTemplate.gradle文件中的所有注释删掉,如:

//Android Resolver Exclusions Start

13.xcode接完firebase推送后,icon上的消息数量打开app 不消失

全局搜applicationDidBecomeActive

这个方法,这是声明周期中的触发活跃方法

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];

这句话给小红点设置数量


14.安卓获取sha1值

将下列代码粘贴到build.gradle中的android函数里
signingConfigs {
    debug {
        storeFile file('sunshine.jks')
        storePassword "123456"
        keyAlias "sunshine"
        keyPassword "123456"
        v1SigningEnabled true
        v2SigningEnabled true
    }
    release {
        storeFile file('sunshine.jks')
        storePassword "123456"
        keyAlias "sunshine"
        keyPassword "123456"
        v1SigningEnabled true
        v2SigningEnabled true
    }
然后点右上角的红色提示编译
然后点击右边的signingreport就能获取到sha1值了

或者点下方Terminal/终端/cmd

获取SHA1

第一步、输入命令:keytool -v -list -keystore keystore文件路径(相对路径)

第二步、输入Keystore密码,回车后即可看得到


15.遇到appstore回复不再支持UIWebView而被秒拒的问题

如果使用的是unity2018版本,需要更新国外补丁版本2018.4.10f1或更高,如果2019等其他版本,请注意补丁内容,更新到fixed UIWebView补丁之后的版本(国内unity可能被区别对待了,建议使用国外版本unity)

附:如果更新后打包ios出现了磁盘权限问题,并确定了unity程序有完全的磁盘访问权限

解决方案:

1.转到编辑器的安装位置。

/Applications/Unity/PlaybackEngines/iOSSupport/Trampoline/build/SharedPrecompiledHeaders

2.右键单击“ SharedPrecompiledHeaders”>“显示简介”>共享和权限

3.将“所有人”的权限 更改为“读写”

4.现在可以为以下项目构建项目iOS平台


16.打包安卓后出现网络请求出现无法请求

出现特点

在工程项目内无问题,但是打包安卓以后出现安卓与服务器请求失败,无返回code,抓包无数据请求。

解决方法和原因

因为Android 28以后不允许直接发送明

Android本机API确实允许HTTP,至少可以使用curl库。但是,Java API(这是UnityWebRequest当前在幕后使用的)不允许HTTP。

解决规避方法用其中一种即可

1、需要在清单文件中更新此行android:usesCleartextTraffic =“ true”。

2、通过将目标API级别更改为27,可以绕过此问题。

3、切换到HTTPS


17.当ios打包大量报swiftXX未定义的的情况下

出现特点:

解决方法

https://github.com/mxcl/PromiseKit/issues/1059

根据这个网址的一个人的回答

ios / YourAppName开放。在Xcode中xcodeproj

在左侧的项目导航器中右键单击您的应用程序名称,然后单击New File…

为项目创建一个空的Swift文件(在添加时确保选中了你的应用名称目标)

当Xcode要求时,按下创建桥接头,然后不要删除Swift文件。重新运行您的构建。

这应该可以解决问题


18.unity发布到ios后iphone x、iphone 11等刘海屏,和iphone14pro、14pm灵动岛适配问题

解决方案:上面留黑边,强制画面下拉

在生成的xcode项目中找到UnityAppController.mm文件

在上面增加导入

#import <sys/utsname.h>

在文件内找到函数

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions

修改如下:

//[注意一定要注释掉这一句]
//_window = [[UIWindow alloc] initWithFrame: [UIScreen mainScreen].bounds];
//增加iphone异形屏的屏幕适配
CGRect winSize = [UIScreen mainScreen].bounds;
   //刘海屏统一修改
   if (winSize.size.height / winSize.size.width > 2)
   {
       winSize.size.height -= 32;
       winSize.origin.y = 32;
   }
   //灵动岛手机 14p、14pm
    struct utsname systemInfo;
    uname(&systemInfo);
    NSString * phoneType = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIStringEncoding];
    if ([phoneType isEqualToString:@"iPhone15,2"] || [phoneType isEqualToString:@"iPhone15,3"]){
        winSize.size.height -= 32*2;
        winSize.origin.y = 32*2;
    }
   _window = [[UIWindow alloc] initWithFrame: winSize];
//增加iphone异形屏的屏幕适配 over

或者把下面两个文件放在Assets/Editor下,在build xcode工程的过程中会自动修改生成的UnityAppController.mm文件,追加上面的代码

注意:必须经过真机测试,自动化可能出现问题

下载地址:

https://download.csdn.net/download/qq534575060/87061092https://download.csdn.net/download/qq534575060/87061092


19.ironsource的部分广告元崩溃问题

问题:在接入is sdk后发生应用崩溃,log提示某些东西(如明确哪个广告元的相关log)丢失

解决方案:可考虑尝试重新对接is,包括build的xcode、as工程都删除后重新build

崩溃截图:

Ios

ios时,在podefile里修改为10.0 然后 在终端pod update 更新Sdk adapter.

android


20.Umeng打点需要等Umeng初始化完成之后才可以打点,否则程序在真机上(目前只试过ios)会崩溃闪退。


21.在提审ios包的时候(我出现此问题是使用transporter工具上传的时候报错),如有遇到xxxx-x86、xxx-x64、x86-64等关键词的报错内容,并不清楚是咋回事的时候,可尝试此解决方案

报错截图

解决方案:

重新打包并关闭**或切换**节点后重新尝试提交,我是在重新打包并关闭**后提交成功


22.Firebase接入A/B Test,build as project打包过程中报错Failed to resolve:xxxxxxx

Firebase不支持unity的gradle template模式,as打包出错,错误内容:

解决方案:

修改为

原因:

EDM试图通过Packages文件夹下的.srcaar生成.aar,但unity不能让外部修改这些文件夹,所有android resolver无法在packages中生成.aar文件,会生成在Assets/GeneratedLocalRepo文件夹下,并且会在mainTemplate.gradle中生成错误本地路径,实际上指定到Assets/GeneratedLocalRepo文件夹下即可解决

注意:

如果Assets/GeneratedLocalRepo文件夹中没有生成的aar文件,可通过EDM的Android Force Resolver重新编译查看是否生成,如果还没有生成,看log解决(一般在黄色警告中)此问题~

如我遇到的这个问题:

 提示xxxx.xml文件中的路径不存在(.srcaar相关文件的路径错误),手动改成正确的,重新Resolover即可解决!


23.对接flurry安卓运行报错的问题

报错内容如下:

解决方案:

使用安装谷歌框架的手机+**测试是否正常


24.AF从V4版本升级到V5、V6时出现和is的vungle有冲突的问题

解决方案:

tools:replace="android:fullBackupContent"
android:fullBackupContent="true"


25.接入AF sdk在build过程中报错

No visible @interface for 'AppsFlyerLib' declares the selector 'logLocationEvent:latitude:'

报错截图:

解决方案:

这是AF6.0.1版本自己的bug,更新sdk到最新版即可解决


26.使用终端clone github太慢的解决方案

github clone 速度慢解决方法 - 简书

使用chrome浏览器,安装一个插件【Github 加速器】

下载地址 (不用**)安装很简单,自己搜索。关键字【chrome开发者模式安装插件】

装好后,打开 github 页面, UI如下

这里多了几个通道, 第一个通道在内网下载时被公司拦截了,提示如下: 

但第二个没问题, 速度飞快,公司可以上3M的速度,怒赞!


27.Unity编译时找不到AndroidSDK的问题 | Unable to list target platforms

如果确定untiy的sdk配置正确,可尝试

解決方法:下載 tools_r25.2.3-windows.zip(連結代碼:android-tools),解壓縮後把 Android_SDK 目錄中的 tools 資料夾整個取代掉即可。

重启电脑


28.解决AndroidStudio下载gradle慢的问题

当我们升级完成AS后,相应的gradle也会需要升级,使用新版本的AS打开项目时,项目下的gradle/wrapper/gradle-wrapper.properties文件里面的gradle版本会更新成当前AS所匹配的gradle版本。此时AS就一直在刷新项目,其实是在进行蜗牛般的速度下载着gradle。

以我现在的AS为例,我把AS升级到2.3后,相应的gradle版本是gradle-2.14.1,可以通过查看文件gradle-wrapper.properties得知你所需的gradle版本。

1.使用下载工具下载gradle

gradle的官网下载地址是 https://gradle.org/releases,打开网址后下载complete版本的gradle。复制下载链接到迅雷下载即可。

2.替换本地gradle

完全关闭AS,包括正在下载gradle的进程也需要关闭。进入到本地的gradle存储目录,我的MAC是/Users/Seven/.gradle/wrapper/dists,linux系统的话应该是在个人用户目录下。

把gradle-2.14.1-all.zip文件复制到 gradle-2.14.1-all/8bnwg5hd3w55iofp58khbp6yv 目录下,同时把该目录下的其他文件删除掉。这个8bnwg5hd3w55iofp58khbp6yv是由AS自动生成的,不能更改。

重新打开AS,会自动解压并生成文件。至此gradle更新完成。


29.上使用transporter上传ipa,上传成功但是弹出警告WARNING ITMS-90109: "This bundle is invalid. The key UIRequiredDeviceCapabilities in the Info.plist may not contain values that would prevent this application from running on devices that were supported by previous versions. Refer to QA1623 for additional information: Documentation Archive"

解决方案:

删除图中的选中的kv  这里是设备架构  4s以后都是armv7 。


30.unity项目在ios中播放广告时的广告声音和游戏声音重叠的问题

在广告打开的回调里调用

Time.timeScale = 0;//暂停游戏
AudioListener.pause = true;//停止所有音频

广告关闭的回调里调用

Time.timeScale = 1;//恢复游戏
AudioListener.pause = false;//恢复所有音频

其他同事出现此问题后的解决方案如下:

在unity中的build settings的Other Settings中的Mute Other Audio Sources选项不要勾选(默认未勾选,当时出现问题的项目并没有勾选,但是还是有问题)


31.Android Studio打包报错:More than one file was found with OS independent path 'kotlin/collections/MapWithDefault.kotlin_metadata'

清除缓存, clean project, 删build文件夹都没有解决问题.

删除掉之前编译生成的apk就可以了

转载:Entry name 'kotlin/collections/MapWithDefault.kotlin_metadata' collided_MAIMIHO的博客-CSDN博客

上面我测试没用

我的解决方案:

在build.gradle中注释掉下面代码就build成功了

//  implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10'

32.unity接入max广告平台后真机运行时调用广告报错(插屏、激励视频)

报错内容关键词为:

ALAdServerAd、adUnitIdentifier、ALAd等错误时

报错截图:

解决方案一:

删除podfile文件中的最后三行

target 'Unity-iPhone' do
end
use_frameworks!

重新pod install后打包即可解决

解决方案二:

unity中的这两个不要勾选,重新build即可~


33.firebase_crashlytics缺失dSYM unity ios

 Firebase后台提示缺失dSYM文件的截图

解决方案:

一、找dSYM:

方法一:

        打开xcode->window->organizer->选择你的版本包archives->show in finder->显示包内容->里面即可看到.dSYM文件

方法二:

        打开终端,运行以下命令行

        在您的机器上显示所有 dSYM 的 UUID

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

​搜索缺失的UUID,那条的后面即是dSYM文件的路径

为了方便操作,可以复制dSYM文件到桌面,修改文件名为1.dSYM(以下案例使用1.dSYM代替),注意名字中不要包含空格等特殊符号,否则接下来的命令行操作会出现问题

二、验证缺失的UUID是否包含在找到的dSYM中

1.打开终端,然后使用以下命令行

dwarfdump -u [dSYM文件路径]/1.dSYM

​即可看到此dSYM中包含的UUID

三.上传dSYM文件到Firebase

1.打开终端,然后使用以下命令行

注意:把[项目 路径][GoogleServicePlist.plist 路径][DSYMs文件路径]替换为你的正确的路径:

[项目 路径]/Pods/FirebaseCrashlytics/upload-symbols -gsp [GoogleServicePlist.plist 路径]/GoogleService-Info.plist -p ios [DSYMs文件路径]/1.dSYM

2.回车

上传成功后提示

Successfully uploaded Crashlytics symbols

回到Firebase后台刷新查看是否正常

参考资料:《使用 Firebase Crashlytics SDK 获取经过去混淆处理的崩溃报告》


34.Unity3d使用Spine SkeletonGraphic(UGUI)时需要注意的坑,仅安卓真机会出问题!

挂载Skeleton Graphic的物体默认为未激活,然后操作Skeleton Graphic组件时,在安卓真机下会报Null!!!(安卓真机会这样,编辑器情况下不会出现问题!别的情况暂时未测试)

在操作之前尽量使用 gameObject.activeInHierarchy 判定一下是否在激活状态,再进行操作!!!


35.android studio编译报错,关键词mtg、mintegral

报错内容:Unknown host dl-maven-android.mintegral.com'. You may need to adjust the proxy settings in Gradle.

多次尝试多次尝试多次尝试编译即可

1.可配置android studio中的proxy到****尝试编译

 2.多次切换****节点编译尝试


36.使用ParticleEffectForUGUI插件后,部分特效出现被剔除的bug

解决方案:Camera中的MASS改为Off,或者ProjectSettings中的Quality中的Anti Aliasing设置为Disabled,即可解决


37.mac安装homebrew

解决网络问题

Homebrew国内如何自动安装(国内地址) - 知乎


38.2021 mac安装cocoapods

新电脑安装 cocoapods 遇到 You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Version。查了很多资料

  都是以前旧的解决方法。就算执行 sudo gem install -n /usr/local/bin cocoapo 也不会起效。mac自带的ruby目录是不允许修改的,即使是root权限。

  解决方法,自行安装ruby,然后将ruby的bin添加到环境配置

1、brew install ruby

2、echo'export PATH="/usr/local/opt/ruby/bin:$PATH"'>> ~/.bash_profile。另外,安装后ruby会提醒配置到.zshrc(对osx无效的)

3、gem install cocoapods。去他的sudo,爱咋咋整。


39.接入maxsdk和fb广告源后,ios在运行时出现FBAdConfigManager、ALSdk、AppLovinSdk ERROR的报错、崩溃,并且不能调用广告

*** Terminating app due to uncaught exception 'FBFinalClassViolationException', reason: 'FBAdconfigManager is a final class and cannot be subclassed. FBAdConfigManager'

[AppLovinSdk] ERROR [ALSdk] Developer passed nil instead of ALAd instance - please check object types!

解决方案:

方案1:

1.unity中取消这个勾选

2.重新build

3.重新pod install

4.重新打包运行测试

方案2:

1.已经buid出来的xcode工程中的podfile中删除

target 'Unity-iPhone' do
  end
  use_frameworks!

2.重新pod install

3.重新打包运行测试

40.max调试器(MAX Mediation Debugger)中的Ad Review Version报错

解决方案:

最新的max聚合里面取消手动设置Ad Review了,需要找发行要一个AppLovinQualityServiceSetup-ios.rb 的文件(这个文件应该是跟账号绑定,和项目无关,每次找发行要一下没有错)

1.文件放在xcode工程目录下

2.终端cd到xcode工程目录下

3.执行

ruby AppLovinQualityServiceSetup-ios.rb

4.看到下图即成功

5.重新打开xcode打包测试


41.使用max聚合,调用激励视频后没有回调

并且发现激励视频能提前关闭

解决方案:

查看是否激励视频和插屏广告的id是否填写反了

42.as安卓打包报错Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.

先看看31.0.0是不是确定已经装了。确定后还不行,就是as版本太新,更改了对31及以上版本打包工具目录的读取方式。解决办法为:

方法一、降低buildTools版本:

build.gradle(:unityLibrary)里的buildTooolsVersion改成31以下版本,并且在File-ProjectStruture-Module里原本填着31的地方改成对应的版本,然后在sdkManager里下载对饮的版本。

方法二、手动更改buildTools31.0.0里的部分文件名

以下两个文件夹内都有名为d8的文件,改成dx即可

~Android\Sdk\build-tools\31.0.0

~Android\Sdk\build-tools\31.0.0\lib

31以上版本同样适用。


43.对接max sdk后,打包ios进入max调试器测试每个广告源,提示需要重启,第二次启动后进入max调试器后app崩溃,并有如下log:

FBAdConfigManager is a final class and cannot be subclassed. FBAdCo
nfigManager

解决方案:

在unity中的ios resolver settings面板这两个都要勾选,并重新build xcode工程后,重新pod install,再build到手机上测试


44.android studio打包过程中报错,报错内容:

Caused by: java.lang.UnsupportedOperationException: This feature requires ASM7

截图:

解决方案:更新Gradle

方法1:

方法2:

1.点击右下角的Gradle升级的小弹窗

如果没出来的话,点击一下Sync Project with Gradle Files,等待结束,再查看右下角是否出现Gradle升级小弹窗(我是不知道其他升级方式,但这样屡试不爽),或者尝试其他升级方式

2.升级后重新build


45.打包到and运行后报错,提示StringEnumConverter相关报错(可能ios也有)

关键词:JsonException: No parameterless constructor defined for 'Newtonsoft.Json.Converters.StringEnumConverter'.

这是因为:

il2cpp的打包方式会自动剥离不用的资源和引用,这里在打包的过程中认为项目中不需要此引用,从json.dll中去掉了StringEnumConverter,只需要在代码中增加如下代码即可,我是放在全局管理器里的Awake中,放在其他地方是否有效不清楚,让unity知道你需要用他

//禁止il2cpp打包方式剥离Json中的StringEnumConverter代码,否则服务器返回的json配置中的enum为string类型时,无法反序列化(android、ios崩溃)
AotHelper.EnsureType<StringEnumConverter>();

或者在

Assets文件夹中新建一个link.xml文件,文件内容如下:

<assembly fullname="JsonDotNet">
       <namespace fullname="Newtonsoft.Json" preserve="all"/>
</assembly>

46.解决sourcetree频繁要求输入Git密码的方法

在sourcetree界面打开终端

在终端输入

git config --global credential.helper store

执行完这条命令后,点击拉取一下,这时候会要求输入密码,之后再执行就不用了

47.在xcode中第一次build成功,第二次就会提示如下错误信息,并且打包失败

Cycle in dependencies between targets 'Unity-iPhone' and 'UnityFramework';
 building could produce unreliable results. This usually can be resolved by m
oving the target's Headers build phase before Compile Sources.
Cycle path: Unity-iPhone → UnityFramework → Unity-iPhone
Cycle details:
*************************************************

错误截图:

解决方案1:

Clean Build Folder后重新build

解决方案2:

48.在unity接入max sdk后,引入最新的MTG(之前没问题,升级后就不行了)广告元后,as工程打包报错的bug

关键词:Mintegral、max、mtg、android studio

报错内容:

/Users/xxx/.gradle/caches/transforms-2/files-2.1/989bb625a9bd9c43e037d3d88a568dcf/core-1.7.0/res/values/values.xml:105:5-114:25: 
AAPT: error: resource android:attr/lStar not found.

   报错截图:

解决方案:

gradle中的recyclerview的版本号不要用“+”

改为指定版本号:

重新buid解决

49.unity build为xcode工程后,在打包ipa的签名阶段出现错误

Missing signing identifier at "xxxxxxx/Frameworks/UnityFramework.framework/Frameworks/libswiftAVFoundation.dylib"

截图:

解决方案:

  1. xcode工程里面的Targets里的UnityFramework设置Team和Unity-iPhone相同
    1. 但我看之前的工程都没有设置是默认的None,打包也是没问题的,这次遇到这个问题后需要设置Team才能打包,所以这个解决方案是存疑的,但改完之后确定是能打包成功
  2. xcode工程里面的Targets里的UnityFramework的Build Settings的Always Embed Swift Standard Libraries设置为No(默认是Yes),重新打包即可成功
    1. 这里发现之前的工程没有这个选项,而此次工程有这个选项,很奇怪不知道为什么,但问题应该是出现在这里
    2. 之前项目:
    3. 此次出问题的项目:

50、windows系统下,unity激活总是无法成功时,试试以下方法(尤其是曾经破解过unity的电脑)。

删除 Windows 目录下 C:ProgramData/Unity/Unity_lic.ulf 文件,重新申请即可。

该文件属于 Unity 许可证文件。多数情况下,删除该许可证即可解决问题。

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小狼是个小程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值