2 Stimmen

Wie greife ich auf eine jar-Datei aus Unity zu, die einen anderen Bundle-Identifier in Unity und einen anderen Paketnamen in Java hat?

Ich habe ein Plugin für Unity in java jar erstellt.

In Java lautet mein Paketname com.android.test .

In Unity lautet mein Bundle Identifier com.android.test . Mit dem nachstehenden Code funktioniert dies problemlos.

Wenn ich jedoch meinen Bundle Identifier in com.android.test2 in Unity, löst der folgende Code eine Ausnahme aus Class not Found: com.android.test2.myplugin .

Gibt es eine Möglichkeit, auf eine jar-Datei zuzugreifen, deren Paketname sich vom Unity Bundle Identifier-Namen unterscheidet?

Hier ist mein Unity-C#-Code für den Zugriff auf 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");
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X