unity接入android插件时,出现错误 -> Dex cannot parse version 52 byte code

具体错误如下

Dex: Error converting bytecode to dex:
    Cause: Dex cannot parse version 52 byte code.
    This is caused by library dependencies that have been compiled using Java 8 or above.
    If you are using the 'java' gradle plugin in a library submodule add
    targetCompatibility = '1.7'
    sourceCompatibility = '1.7'

Unity5.6版本在编译java时,使用的1.7,就是说gradle版本是2.1.0.

由于接入的插件中具有使用1.8编译的jar包.所以unity会报这个

Dex cannot parse version 52 byte code.

首先复制unity安装目录下的gradle文件路径是

E:\安装路径\Unity5.6.5f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates\mainTemplate.gradle

将此文件复制到Plugins\Android\中(不要重命名)

然后打开文件修改gradle版本为2.3.0

classpath 'com.android.tools.build:gradle:2.3.0'

此时如果发布会报错,因为unity中使用的gradle包是2.14的.需要改成3.3的

打开链接gradle-3.3-all.zip下载3.3的包,然后解压.

在压缩包根目录中找到lib文件夹.并复制文件夹.

打开unity安装路径

E:\安装路径\Unity5.6.5f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle

删除lib文件夹,并将压缩包中的lib粘贴进去.

此时从unity发布将没有此问题.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你需要在Unity工程中接入Android SDK,同又需要继承`UnityPlayerActivity`,那么在AndroidManifest.xml文件中的`<application>`标签中需要添加`android:name`属性,指定自定义的Application类名,并在该类中继承`UnityPlayerActivity`。 下面是一个示例模板: ``` <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="your.package.name"> <uses-permission android:name="android.permission.INTERNET" /> <application android:name=".YourCustomApplication" android:icon="@drawable/app_icon" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name="com.unity3d.player.UnityPlayerActivity" android:label="@string/app_name"> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> </activity> <!-- Other activities, services, receivers, etc. --> </application> </manifest> ``` 在这个模板中,你需要做以下几个事情: 1. 将`your.package.name`替换成你应用程序的包名; 2. 在`<uses-permission>`标签中声明你的应用程序需要的权限(这里只是一个例子,你需要根据你的应用程序需要的权限进行声明); 3. 在`<application>`标签中配置你的自定义Application,将android:name属性设置为你自定义Application的类名; 4. 在`<application>`标签中添加你应用程序中的各种组件,例如Activities、Services、Broadcast Receivers等; 5. 在`<activity>`标签中添加UnityPlayerActivity,并添加`<meta-data>`标签来指示该Activity是Unity的Activity; 6. 如果你需要自定义Application,并且需要继承`UnityPlayerActivity`,那么你需要在自定义Application类中继承`UnityPlayerActivity`类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值