Воскресенье, 24 Ноября 2024, 03:03

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Имплементация java класса в андроид проект
RangerДата: Четверг, 19 Июня 2014, 14:09 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Добрый день.
Имеем java класс:
Код

public class MyJavaClass {
   public MyJavaClass() {
   }
    public String ReturnString() {
     return "strting From MyCLass ";
   }
}


запаковываем его в jar


jar кладем в C:\development\Projects\2014_06_19 JavaUsingExample\Assets\Plugins\Android

на шарпе пишем скрипт:
Код

using UnityEngine;
using System.Collections;
using System;

public class JavaUsEx : MonoBehaviour {
   static AndroidJavaClass jc = null;
   string cameHere  = "No...";
   // Use this for initialization   
   void Start () {
    try{
     jc = new AndroidJavaClass("com.Company.JavaUsingExample.MyJavaClass");
    }
    catch(Exception e)  {
     cameHere = e.Message;
    }
   }

   // Update is called once per frame
   void Update () {
    if(Input.GetKeyDown(KeyCode.Escape))
     Application.Quit();
      
   }
   void OnGUI(){

    if(jc != null)
     GUI.Label(new Rect(100,100,300,300),"Not empty" + jc.ToString());
    else
     GUI.Label(new Rect(100,100,300,300),"null yeah");
    GUI.Label(new Rect(100,200,300,300),cameHere);

   }
}

собираем, запускаем на андроеде:
и получаем по catch: java.lang.classnotfoundexception com.Company.JavaUsingExample.MyJavaClass
Как найти класс из этого плагина?
статью на docs.unity3d уже раз 5 прочитал.
Гугл уже дымится..

Спасибо..
upd
ни один из знакомы мне гуру не смог мне ответить как решить проблему.




Сообщение отредактировал Ranger - Четверг, 19 Июня 2014, 14:11
PoqXertДата: Четверг, 19 Июня 2014, 15:00 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Проблема в default package.
Нужно создать пэкедж com.Company.JavaUsingExample и уже в нём создать класс.


Расширения для Unity3D
Блог программиста - PoqXert.ru


Сообщение отредактировал PoqXert - Четверг, 19 Июня 2014, 15:01
RangerДата: Четверг, 19 Июня 2014, 18:38 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
Спасибо за ответ.

Цитата PoqXert ()
Проблема в default package.

имеешь в виду
Код
package  com.Company.JavaUsingExample;
public class MyJavaClass {    
      public MyJavaClass() {    
      }    
       public String ReturnString() {    
        return "strting From MyCLass ";    
      }    
}    
    
???
1. я не знаток эклипс. Не уверен, что он позволит мне тупо переобозвать package.
2 и как имплементировать чужие jar? я думаю, они должны указываться в манифесте, но в доках по поводу добавления packageй в манифест ничего не нашел.

update:
в принципе есть еще 1 мысль Unity переваривает только предыдущую версию java. Завтра попробую собрать на ней.
но если это так, то, товарищи, это пипец!




Сообщение отредактировал Ranger - Четверг, 19 Июня 2014, 18:45
seamanДата: Пятница, 20 Июня 2014, 10:29 | Сообщение # 4
старожил
Сейчас нет на сайте
Зачем преобразовывать. Создаешь в проекте новый пакедж и в нем пишешь свой класс:


Я тоже не спец по эклипс. Может есть более простой путь переименовать пакедж, но я нашел только такой:
1. В каждый файл проекта первой строкой пишешь: package имя_пакеджа;
2. В проекте создаешь папку с именем пакеджа
3. Переносишь туда твои файлы.
4. Переоткрываешь эклипс.


Сообщение отредактировал seaman - Пятница, 20 Июня 2014, 10:45
RangerДата: Понедельник, 23 Июня 2014, 13:26 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
Спасибо всем ответившим. Проблему я решил.

Короче... ну его нафиг этот эклипс. сделал из строки:
javac MyJavaClass.java
jar cvf MyJavaClass.jar MyJavaClass.class

в скрипте прописал:

все видно. все создается. И классы, и объекты.
для данного примера править манифест не нужно.




Сообщение отредактировал Ranger - Понедельник, 23 Июня 2014, 13:28
NEBRДата: Среда, 25 Июня 2014, 13:14 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
Ranger, Круто! Большое спасибо!

King Size #Gamiron12
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг