Я создал плагин для единства в java jar.
В Java имя моего пакета — com.android.test
.
В Unity мой идентификатор пакета — com.android.test
. Это отлично работает с кодом ниже.
Но если я изменю свой идентификатор пакета на com.android.test2
в Unity, приведенный ниже код выдаст исключение Class not Found: com.android.test2.myplugin
.
Есть ли способ получить доступ к файлу jar, имя пакета которого отличается от имени идентификатора пакета Unity?
Вот мой код Unity С# для доступа к Jar:
static IntPtr cls_Activity;
static IntPtr fid_Activity;
static IntPtr obj_Activity;
static IntPtr cls_OurAppNameActivityClass;
static IntPtr startAdsMethod;
cls_Activity = AndroidJNI.FindClass("com/unity3d/player/UnityPlayer");
fid_Activity = AndroidJNI.GetStaticFieldID(cls_Activity, "currentActivity", "Landroid/app/Activity;");
obj_Activity = AndroidJNI.GetStaticObjectField(cls_Activity, fid_Activity);
cls_OurAppNameActivityClass = AndroidJNI.FindClass("com/android/test/myplugin");
startAdsMethod = AndroidJNI.GetMethodID(cls_OurAppNameActivityClass, "Instantiate", "()V");
if (AndroidJNI.IsInstanceOf(obj_Activity, cls_OurAppNameActivityClass) != false)
{
Debug.Log("Activity IS a OurAppNameActivity");
jvalue[] myArray = new jvalue[1];
AndroidJNI.CallVoidMethod(obj_Activity, startAdsMethod, myArray);
Debug.Log("Activity Leaving a OurAppNameActivity");
}