Необходимо добавить ссылку на сборку ‘UnityEngine.AndroidJNIModule

#c# #unity3d

#c# #unity3d

Вопрос:

Я очень новичок в Unity, и я попытался интегрировать плагин Huawei Mobile Service, и я получил эту ошибку.

Тип ‘AndroidJavaObject’ определен в сборке, на которую нет ссылки. Необходимо добавить ссылку на сборку ‘UnityEngine.AndroidJNIModule

Есть ли кто-нибудь, кто сталкивался с этой проблемой раньше? Спасибо.

Редактировать Этот код принадлежит плагину.

 using HuaweiMobileServices.Id;
using HuaweiMobileServices.Utils;
using System;
using UnityEngine;
namespace HmsPlugin
{
public class AccountManager : MonoBehaviour
{

    public static AccountManager GetInstance(string name = "AccountManager") => GameObject.Find(name).GetComponent<AccountManager>();

    private static HuaweiIdAuthService DefaultAuthService
    {
        get
        {
            Debug.Log("[HMS]: GET AUTH");
            var authParams = new HuaweiIdAuthParamsHelper(HuaweiIdAuthParams.DEFAULT_AUTH_REQUEST_PARAM).SetIdToken().CreateParams();
            Debug.Log("[HMS]: AUTHPARAMS AUTHSERVICE"   authParams);
            var result = HuaweiIdAuthManager.GetService(authParams);
            Debug.Log("[HMS]: RESULT AUTHSERVICE"  result);
            return resu<
        }
    }

    public AuthHuaweiId HuaweiId { get; private set; }
    public Action<AuthHuaweiId> OnSignInSuccess { get; set; }
    public Action<HMSException> OnSignInFailed { get; set; }

    private HuaweiIdAuthService authService;

    // Start is called before the first frame update
    void Awake()
    {
        Debug.Log("[HMS]: AWAKE AUTHSERVICE");
        authService = DefaultAuthService;
    }

    public void SignIn()
    {
        Debug.Log("[HMS]: Sign in "   authService);
        authService.StartSignIn((authId) =>
        {
            HuaweiId = authId;
            OnSignInSuccess?.Invoke(authId);
        }, (error) =>
        {
            HuaweiId = null;
            OnSignInFailed?.Invoke(error);
        });
    }

    public void SignOut()
    {
        authService.SignOut();
        HuaweiId = null;
    }
}
  

}

Изображение проблемы здесь.

Комментарии:

1. Я полагаю, что вы не импортируете эту библиотеку или не ссылаетесь на нее в project. Можете ли вы показать нам свой код?

2. Я отредактировал свой вопрос и добавил картинку и код. Спасибо за внимание. @VoidSpirit

Ответ №1:

Проблема в моем единстве. У меня не было модуля AndroidJNI, поэтому я получил эту ошибку. Наконец, я удаляю текущую версию, затем устанавливаю новую версию Unity, и проблема решена. В новой версии модуль AndroidJNI устанавливается автоматически.