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

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

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

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

<assembly fullname="NativeGalleryNamespace" preserve="all"/> 
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐