반응형
Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Do Something IT

[unity3d] Unity3D에서 Jar 읽기 , Export 하기 ( Mac 에서 ) 본문

Unity3D

[unity3d] Unity3D에서 Jar 읽기 , Export 하기 ( Mac 에서 )

아낙시만더 2012. 7. 24. 13:54
반응형

출처 : 바로가기 여기가 더좋음 http://it-backup.tistory.com/3 참조하시오

일단 저는 2.2버전이 필요해서 이 버전만 테스트 해봤습니다.


* 참고로 직접 폰에 넣어야 확인 가능 합니다.



package com.Toy.anLib;   // 패키지 네임


import com.unity3d.player.UnityPlayerActivity;


public class AndroidLibActivity // 클래스 네임 extendsUnityPlayerActivity {

    /** Called when the activity is first created. */

static String aa = "Bcc";

public static String Rename1()

{

return aa;

}

public String Rename2()

{

return "A";

}


}



위에서 녹색표시한 영역에 대한 이름을 본문에서 확실히 구별하자.


괜히 어렵게 설명한다고 클래스, 클레스 네임, 패지키 클래스, 액티비티 클래스.. 


=ㅅ=.. 뭐 다 맞는 소리지만, 아는 입장에서 보면 왜 저렇게 설명할까 싶다.


///////


using UnityEngine;

using System.Collections;


public class JarOpenclass : MonoBehaviour {

 public static string mnd;

// Use this for initialization

void Start () {

AndroidJNI.AttachCurrentThread();

}

void OnGUI()

{

GUI.Label(new Rect(0,0,100,100),mnd);

if( GUI.Button(new Rect(0,100,100,100),"Get" ) )

{

AndroidJavaClass ics = new           AndroidJavaClass("com.Toy.anLib.AndroidLibActivity");


// 이부분에는 불러올 (패키지 네임) + (클래스 네임) 을 등록해준다. 

mnd = ics.CallStatic<string>("Rename1");

}

}


// Update is called once per frame

void Update () {

}

}







제가 Export한 Jar파일 이름이 끔찍하다고 해서... Monster.Jar이었습니다.

AndroidMaifest.xml파일은 이클립스에서 있던걸 복사해 왔습니다.




Bundle Identifier에는 "패키지 네임"만 써줍니다. 뒤에 클래스 네임 안 붙여도 되요.




보통 인터넷에 보면 이렇게 하고 classes를 포함하면 됩니다. 

하고 따라해보면 절때로 안된다.

//// xml내용

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.Toy.anLib"

    android:versionCode="1"

    android:versionName="1.0" >


    <uses-sdk android:minSdkVersion="8" />


    <application

        android:icon="@drawable/app_icon"

        android:label="@string/app_name" >

        <activity

            android:name=".AndroidLibActivity"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>


</manifest>


자 일단 이거...


저 위에서 app_icon으로 바꿔쓰세요. 라고 한다.


뭐 유니티에서 이름이 app_icon이니 그럴수 있지만


보통 android를 개발해보지 않은 사람들은 


왜 메니페스트에서 에러나 가는지 모른다.



으헝... 학교에서 09년때 g1폰 가지고 와서


민재야 안드로이드 개발하렴 ^^//


하고 스마트폰 개발을 꾸역 꾸역 배운 보람이... 있기도 하네 


=ㅁ=.. 하하하하하하



당연히... app_icon이 없으니까 =ㅁ= ( 추가하면 된다. )


그럼 가장 빡치는게 이 문장이다.


그냥 classes.jar을 포함하면 된다고 한다.


윈도우 경로가 써있다. 


=ㅁ= 맥은??? (아.. 멘붕)



[그림 1] 폴더에서 유니티가 설치되어 있는 경로에 가서 유니티 실행 아이콘에서 오른쪽 버튼을 누른다.


[그림2] 는 알아서.. AndroidPlayer까지 따라 갈수 있겠죠??



[그림3] 뭐 가끔 보면 dex가 있어야 되네 말아야 되네 하는 소리가 있다. 없어도 된다. .jar파일만 복사하자. 


어디에??






이 경로에 추가 하라고, 그림 설명 좀 해주지


여기까지 추가하면 DEX오류가 난다. ( 아.. 멘... 붕)


물론 라이브러리를 추가했다는 가정하에 말이다.


처음에는 Java오류인줄 알고 자바 업데이트를 했다.


자바 업데이트를 하고나니 깔끔하게 [버그가 났다.]



일단 라이브러리 설정하는 곳에 가보자.





저거 누르면 설정 페이지가 나온다.








Java Build Path에서 일단 Libraries에가서 ADD JARS에서 라이브러리를 등록한다.





이렇게 화면이 뜰텐데 libs 폴더 하위에서 선택하면 된다.



자 그럼 여기까지 한뒤 DEX 오류가 났다.


이히히히... 아.. 멘붕


그래서 선배한테 되는 라이브러리 좀 달라고 해서


받았다. 결국 하하하하  =ㅁ=..... 


그리고 내것과 설정이 다른걸 보니




Source설정으로가서 assets폴더를 추가해주었고



Order and Export 설정에가서 다음과 같이 설정해 주었다.



그랬더니 lint.xml이라는 빈 xml파일이 생겼다. =ㅅ= 흐므흐므..


그리고 가서 Unity3D 에거 돌려보니 에러가 나지 않았다. ( 유후 ~ )



혹시 안되시는분은 icat2048@gmail.com으로 메일을 주시면 


기본 셋팅된 이클립스 날려 드릴께요.



아.. 참고로 Export하는법


1. 기본 안드로이드 프로젝트를 만듭니다.


2. OnCreate는 지웠습니다.


3. 그래서... 위와 같은 소스만 남겼구요.


4. 아래와 같은 순서로 Jar파일을 생성하였습니다.


5. TestAndroid프로젝트는 상명대학교 대학원생 허준님께서 보내주셨습니다.





추가사항

현재 안드로이드 플로그인을 통해 단말기 폰번호를 받아오려 합니다.

현재 환경은 맥을 쓰고 유니티 3.5.3f3을 쓰고있고 이클립스 헬리우스 sdk는 최신 버전을 사용 하고 있습니다.

헑 정보 많길레 쉽게 될줄 알았는데 생각 처럼 안되네여 ㅜㅜ

====> 답변 

'@style/AppTheme' 
'@string/title_activity_act_lib 이부분 잘못된거 같은데 app 테마 삭제하고 라벨은 app_name 로 한번 해보세요.. 

반응형

'Unity3D' 카테고리의 다른 글

[unity] loding Progress base logic  (0) 2012.10.08
[UNITY3D] 유니티 STL  (0) 2012.09.10
[Unity3D]자연스럽게 오브젝 회전하기.  (0) 2012.07.03
[유니티] save 파일 저장  (0) 2012.05.23
[유니티] 단축키  (0) 2012.04.04
Comments