Unity打包报错OBSOLETE - Providing Android resources in Assets/Plugins/Android/res is deprecated, please

2022.11.17更新

修改aar方式代价有点大,最近发现一个新方法能更方便解决这个问题。原理就是监听打包事件,在打包快结束的时候把res目录手动拷过去一起打包出apk。因为unity的流程是先打包出Gradle工程,然后会搜索实现了IPostGenerateGradleAndroidProject接口的类进行调用,再进行出包。

详细流程如下:

using System;
using System.IO;
using UnityEditor.Android;
using UnityEngine;

class ResPostGenerateGradleAndroidProject : IPostGenerateGradleAndroidProject
{
    //这个是res所在的目录
    private string sourceFolder = Application.dataPath.Replace("/Assets", "") + "/PlatformSources/";
    public int callbackOrder { get; }
            
    public void OnPostGenerateGradleAndroidProject(string path)
    {
        CopyFolder (sourceFolder, path+"/");
    }
            
    public void CopyFolder(string from, string to)
    {
        if (!Directory.Exists(to))
            Directory.CreateDirectory(to);

        // 子文件夹
        foreach (string sub in Directory.GetDirectories(from))
            CopyFolder(sub + "/", to + Path.GetFileName(sub) + "/");

        // 文件
        foreach (string file in Directory.GetFiles(from)){
            try {
                File.Copy(file, to + Path.GetFileName(file), true);
            } catch (Exception ex) {
                Debug.LogWarning ("拷贝失败:" + ex.Message);
            }
        }
    }
}

如果有问题,说明拷贝到的目标目录不对,打包后可以在此处查看到Gradle工程,拷贝后的目录结构是这样就没问题。

 

————————————————————————————————————

将项目从2021.1升级到2021.2的时候,收到一些错误,解决后打包Android包,之前没问题的突然报错了:

OBSOLETE - Providing Android resources in Assets/Plugins/Android/res is deprecated, please move your resources to an AAR or an Android Library. See "AAR plug-ins and Android Libraries" section of the Manual for more details.

原来2021.2已经不允许把res文件直接放Plugins/Android/目录下了,取而代之要用aar实现,这么坑,太不方便了。

这是官方写的链接:Unity - Manual: Upgrading to Unity 2021.2

但是aar这种方式太麻烦了,我们又不是专门的Android程序员,所以我就在探索有没有更快的解决方案。

这是我现在的目录结构:

  1.  直接把libs、res和AndroidManifest文件打成压缩包,改成.aar,同样报错。
  2. libs里的jar挪出来,jar、res、Manfiest文件打包成.aar,报错
  3. libs、AndroidManifest保留,res直接打包成res.aar,报错
  4. libs、AndroidManifest保留,res打包成.rar(打算骗Unity),报错

总结:

试了几种方式,都不行,看来还是只能补下aar的知识了,最后重新做了aar放unity成功了。

因为aar很多人不知道怎么操作,所以我特地写了个文章详细说下,请前往查看

AndroidStudio打包AAR供Unity使用流程_鱼蛋-Felix的博客-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鱼蛋-Felix

如果对你有用,可以请我喝杯可乐

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

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

打赏作者

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

抵扣说明:

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

余额充值