android unity3d demo
在进行Android Unity3D Demo开发时,我遇到了两个比较棘手的问题,下面将详细介绍这两个问题的现象、原因以及解决办法。
问题一:Error generating final archive:Debug certificate expired on ****
从错误信息字面意思可以知道,这是由于Debug证书过期导致的问题。
在Android开发中,应用程序必须经过开发者的自签名证书进行数字签名后,才能安装到Android系统上。在开发调试阶段,默认情况下,ADT(Android Development Tools)辅助工具会使用默认的Debug版本签名文件对apk文件进行签名。
当安装Android SDK后,系统会生成一个Debug签名证书,并保存在debug.keystore文件中。ADT会使用这个证书对每个生成的应用进行数字签名。但每个Debug证书的有效期限只有365天,所以不可避免地会出现证书过期的情况。而且Android SDK比较死板,当发现证书过期时,不会自动更新,而是直接给出错误提示。
在Windows系统下,这个Debug证书通常保存在C:/Documents and Settings/Administrator/.android目录下。我查看了该目录下证书的修改日期,发现是2009年11月9日,差不多是一年前,由于有段时间没有使用Android SDK,这次使用就出现了这个问题。
解决这个问题的方法很简单:直接删除debug.keystore文件。当Android SDK发现debug.keystore文件丢失后,会自动生成一个新的证书。再次运行SDK,问题就解决了。
问题二:Error building Player: Win32Exception: ApplicationName='D:/android/android-sdk-windows-1.6_r1\tools\zipalign.exe', CommandLine='4 "C:\Users\Administrator.OTCITZ1YGXVV59Z\Documents\New Unity Project 1\Temp/StagingArea/Package_unaligned.apk" "C:\Users\Administrator.OTCITZ1YGXVV59Z\Documents\New Unity Project 1\Temp/StagingArea/Package.apk"', CurrentDirectory='Temp/StagingArea'
从错误信息可以看出,系统在执行D:/android/android-sdk-windows-1.6_r1\\tools\\zipalign.exe时出现了问题。经过检查,发现D:/android/android-sdk-windows-1.6_r1\\tools\\目录下并没有zipalign.exe这个可执行文件。从错误信息的字面意思推测,这个文件在打包过程中是必需的。
后来,我在D:\\android\\android-sdk-windows-1.6_r1\\build-tools\\20.0.0目录下找到了zipalign.exe文件。将其拷贝到D:/android/android-sdk-windows-1.6_r1\\tools\\目录后,再次发布项目就正常了。