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包里面声明的
这个包里面对于自身的加载路径是Assets/Android/Plugin/libs/ 。但是其他开发人员将这个包移动到别的工程目录下了
导致这个包自身写的加载路径下找不到这个包,就初始化失败,然后 NativeGallery的RequestPermission方法里面对这个安卓类进行实例化的时候就会报错找不到
另外还要注意的是link.xml里面对NGPermissionCallbackAndroid所在的命名空间要进行添加保存,防止unity在代码剔除的时候将其剔除掉。
<assembly fullname="NativeGalleryNamespace" preserve="all"/>
上一篇: 事务的四大隔离级别中的幻读问题
下一篇: 犯错集合&个人缺陷&好想法