Exemplo n.º 1
0
        /// <summary>
        /// Create an instance of a java object
        /// TODO : add the possibility to call an object constructor with arguments
        /// </summary>
        /// <param name="ClassName">name of the class to instantiate</param>
        /// <param name="javaClass">an empty java class pointer that will set if the class is found</param>
        ///
        /// <returns>A pointer to a java object in memory if the constructor could be called without error</returns>
        public IntPtr InstantiateJavaObject(string ClassName, out IntPtr javaClass, string signature = "()V", params object[] args)
        {
            // retrieve class pointer to create and object
            if (!usedClasses.ContainsKey(ClassName))
            {
                try {
                    javaClass = env.FindClass(ClassName);
                    usedClasses.Add(ClassName, javaClass);
                } catch {
                    throw new Exception(env.CatchJavaException());
                }
            }
            else
            {
                javaClass = usedClasses[ClassName];
            }

            try {
                IntPtr methodId   = env.GetMethodID(javaClass, "<init>", signature);
                IntPtr javaObject = env.NewObject(javaClass, methodId, ParseParameters(javaClass, signature, args));
                // Store for disposal
                usedObject.Add(javaObject);
                return(javaObject);
            } catch {
                throw new Exception(env.CatchJavaException());
            }
        }
Exemplo n.º 2
0
        public void InstantiateJavaObject(string ClassName)
        {
            // need to create class before we can call any methods
            javaClassName = ClassName;
            try
            {
                javaClass = env.FindClass(javaClassName);

                IntPtr methodId = env.GetMethodId(javaClass, "<init>", "()V");
                javaObject = env.NewObject(javaClass, methodId, new JValue()
                {
                });
            }
            catch
            {
                throw new Exception(env.CatchJavaException());
            }
        }
 //CJW
 public IntPtr FindClassID(string ClassName)
 {
     try
     {
         return(env.FindClass(ClassName));
     }
     catch
     {
         throw new Exception(env.CatchJavaException());
     }
 }