欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity安卓出的包报错ClassNotFoundException

程序员文章站 2022-05-09 15:14:21
...

在unity出来的安卓app程序进入到某个地方的时候,点击某个按钮报了下面这个错,表示找不到NativeGalleryPermissionReceiver这个安卓的java类,在点击按钮的时候,实例化某个继承了AndroidJavaProxy的类,在这个类的构造函数中就指明了安卓外部类com.yasirkula.unity.NativeGalleryPermissionReceiver
类的部分代码如图所示:

public class NGPermissionCallbackAndroid : AndroidJavaProxy
	{
		...
		
		public NGPermissionCallbackAndroid( object threadLock ) : base( "com.yasirkula.unity.NativeGalleryPermissionReceiver" )
		{
			...
		}
		...

双引号里面指明的外部类是在一个叫做NativeGallery的jar包里面声明的
Unity安卓出的包报错ClassNotFoundException
这个包里面对于自身的加载路径是Assets/Android/Plugin/libs/ 。但是其他开发人员将这个包移动到别的工程目录下了

导致这个包自身写的加载路径下找不到这个包,就初始化失败,然后 NativeGallery的RequestPermission方法里面对这个安卓类进行实例化的时候就会报错找不到
另外还要注意的是link.xml里面对NGPermissionCallbackAndroid所在的命名空间要进行添加保存,防止unity在代码剔除的时候将其剔除掉。

<assembly fullname="NativeGalleryNamespace" preserve="all"/> 
相关标签: 安卓 错误集合