일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- php 홈디렉토리 변경방법
- unity
- 나지보 특성
- 명령어
- 나지보
- 자바
- TCP 네트워크 방식의 연결
- 포트(Port)
- 에셋
- 소캣(Socket)
- 게임
- 기업의 행포
- 아이패드
- tcp네트워크
- 비행기 모드
- 스랄 특성
- 아이폰
- game
- 컬렉션 프레임
- 히오스
- tcp
- 안드로이드 Application Lifecycle
- 벨팡
- 리눅스
- 변경된 정보
- 집 정리
- Collection Framework
- End of Darkness
- 어플
- 안드로이드
- Today
- Total
Do Something IT
[unity3d] Unity3D에서 Jar 읽기 , Export 하기 ( Mac 에서 ) 본문
출처 : 바로가기 여기가 더좋음 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에는 "패키지 네임"만 써줍니다. 뒤에 클래스 네임 안 붙여도 되요.
<?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프로젝트는 상명대학교 대학원생 허준님께서 보내주셨습니다.
'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 |