BuildTool更新出apk失败

报错
CommandInvokationFailure: Unable to convert classes into dex format.
E:/AndroidSdk/jre\bin\java.exe -Xmx4096M -Dcom.android.sdkmanager.toolsdir=“E:/AndroidSdk/sdk\tools” -Dfile.encoding=UTF8 -jar “D:\Program Files\Unity2017.4.40\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar” -
stderr[
Error:Invalid command dx
]
stdout[
]
exit code: 64
原因

Unable to convert classes into dex format经常是有重复jar包报错,但这里不是​

进入as删除比较新的buildtools

as会更新,会自动下载最新的30.0.0的build-tools,30里面已经没有dx.exe,这样打包时报错。

解决办法

使用as里面sdk设置删除多余的高版本buildTools

unity3d+android:Unable to convert classes into dex format;apk解析失败;Plugins_unity出包失败

或者使用祖传sdk
链接:https://pan.baidu.com/s/1BSEkpk4K4JrIncq3vZpAKQ
提取码:naz9

Plugins目录

Plugins

Plugins文件夹用来放native插件。它们会被自动包含进build中去。
Plugins文件夹只能是Assets文件夹的直接子目录!!!,
Plugins文件夹只能是Assets文件夹的直接子目录!!!,
Plugins文件夹只能是Assets文件夹的直接子目录!!!。
在Windows平台下,native 插件是dll文件;Mac OS X下,是bundle文件;Linux下,是.so文件。
跟Standard Assets一样,这里的脚本会更早的编译,允许它们被之外的脚本访问。

Plugins/x86

如果为32bit或64bit平台创建游戏,那么这个文件夹下的native plugin文件会被自动的包含在游戏build中。如果这个文件夹不存在,则Unity会查找Plugins文件夹下的native pluglins。

Plugins/x86_64

如果为32bit或64bit平台创建游戏,那么这个文件夹下的native plugin文件会被自动的包含在游戏build中。如果这个文件夹不存在,则Unity会查找Plugins文件夹下的native pluglins。
如果要创建universal build,建议你同时使用这两个文件夹。然后将32bit和64bit的native plugins放进相应的文件夹中。

Plugins/Android

在这个文件夹里放入Java.jar文件。用于java语言的plugins。.so文件也会被包含进来。参考
[http://docs.unity3d.com/Documentation/Manual/PluginsForAndroid.html
如果出apk失败,CommandInvokationFailure: Unable to convert classes into dex format多半是有重复jar包

Plugins/iOS

A limited, simple way to automatically add (as symbolic links) any .a, .m, .mm, .c, or .cpp files into the generated Xcode project. See
[http://docs.unity3d.com/Documentation/Manual/PluginsForIOS.html
If you need more control how to automatically add files to the Xcode project, you should make use of the PostprocessBuildPlayer feature. Doing so does not require you to place such files in the Plugins/iOS folder. See
[http://docs.unity3d.com/Documentation/Manual/BuildPlayerPipeline.html

出apk安装时解析失败

原因是AS和Unity共用一个sdk目录导致,一旦as更新,破坏了unity的sdk环境,因为unity每个版本和sdk是一一对应,unity老版本并不能支持高sdk。最好做法,unity一旦能测试apk出包正常,保存住环境,复制一遍,as里的sdk目录指向这个复制的目录。
祖传unity sdk
链接:https://pan.baidu.com/s/1BSEkpk4K4JrIncq3vZpAKQ
提取码:naz9