카테고리 없음

안드로이드 네이버 지도 API 안드로이드스튜디오 aar -> 이클립스 jar 변환하기

무한열정 2017. 5. 17. 19:17

신규로 시작하는 프로젝트면 Android Studio를 사용하면 되지만

기존 이클립스로 만들어진 프로젝트를 수정하거나 급히 대응해야 하는경우가 있습니다.

 

이클립스용 프로젝트를 Android Studio로 변환시키면 되겠지만

혹시 영향이 있을지도 모르고 시간부족으로 부담될때가 있습니다.

그래서 Android Studio용 라이브러리인 aar파일을 jar로 변환해야 할때가 생기게 되네요.

 

우선 기본적인 방법은 아래 글을 참고 하시면 되는데요.

http://androiddev.tistory.com/458

 

이대로 하면 100% 구동되지는 않고 약간 주의사항이 있네요.

저 같은 경우는 아래와 같은 오류가 떨어지네요. 아 머리에 지진나네요. ㅜㅠ

05-17 09:21:55.495: E/AndroidRuntime(2862): FATAL EXCEPTION: main

05-17 09:21:55.495: E/AndroidRuntime(2862): Process: com.nhn.android.mapviewer, PID: 2862

05-17 09:21:55.495: E/AndroidRuntime(2862): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/nhn/android/nmaps/R$drawable;

05-17 09:21:55.495: E/AndroidRuntime(2862): at com.nhn.android.maps.b.a(NMapLibrary.java)

05-17 09:21:55.495: E/AndroidRuntime(2862): at com.nhn.android.maps.NMapView.a(NMapView.java)

05-17 09:21:55.495: E/AndroidRuntime(2862): at com.nhn.android.maps.NMapContext.setupMapView(NMapContext.java)

05-17 09:21:55.495: E/AndroidRuntime(2862): at com.nhn.android.maps.NMapActivity.setupMapView(NMapActivity.java)

05-17 09:21:55.495: E/AndroidRuntime(2862): at com.nhn.android.maps.NMapView.a(NMapView.java)

05-17 09:21:55.495: E/AndroidRuntime(2862): at com.nhn.android.maps.NMapView.<init>(NMapView.java)

05-17 09:21:55.495: E/AndroidRuntime(2862): at com.nhn.android.mapviewer.NMapViewer.onCreate(NMapViewer.java:114)

05-17 09:21:55.495: E/AndroidRuntime(2862): at android.app.Activity.performCreate(Activity.java:6237)

05-17 09:21:55.495: E/AndroidRuntime(2862): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)

05-17 09:21:55.495: E/AndroidRuntime(2862): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)

05-17 09:21:55.495: E/AndroidRuntime(2862): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)

05-17 09:21:55.495: E/AndroidRuntime(2862): at android.app.ActivityThread.-wrap11(ActivityThread.java)

05-17 09:21:55.495: E/AndroidRuntime(2862): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)

05-17 09:21:55.495: E/AndroidRuntime(2862): at android.os.Handler.dispatchMessage(Handler.java:102)

05-17 09:21:55.495: E/AndroidRuntime(2862): at android.os.Looper.loop(Looper.java:148)

05-17 09:21:55.495: E/AndroidRuntime(2862): at android.app.ActivityThread.main(ActivityThread.java:5417)

05-17 09:21:55.495: E/AndroidRuntime(2862): at java.lang.reflect.Method.invoke(Native Method)

05-17 09:21:55.495: E/AndroidRuntime(2862): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)

05-17 09:21:55.495: E/AndroidRuntime(2862): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

05-17 09:21:55.495: E/AndroidRuntime(2862): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.nhn.android.nmaps.R$drawable" on path: DexPathList[[zip file "/data/app/com.nhn.android.mapviewer-2/base.apk"],nativeLibraryDirectories=[/data/app/com.nhn.android.mapviewer-2/lib/x86_64, /vendor/lib64, /system/lib64]]

05-17 09:21:55.495: E/AndroidRuntime(2862): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

05-17 09:21:55.495: E/AndroidRuntime(2862): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)

05-17 09:21:55.495: E/AndroidRuntime(2862): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)

05-17 09:21:55.495: E/AndroidRuntime(2862): ... 19 more

05-17 09:21:55.495: E/AndroidRuntime(2862): Suppressed: java.lang.ClassNotFoundException: com.nhn.android.nmaps.R$drawable

05-17 09:21:55.495: E/AndroidRuntime(2862): at java.lang.Class.classForName(Native Method)

05-17 09:21:55.495: E/AndroidRuntime(2862): at java.lang.BootClassLoader.findClass(ClassLoader.java:781)

05-17 09:21:55.495: E/AndroidRuntime(2862): at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)

05-17 09:21:55.495: E/AndroidRuntime(2862): at java.lang.ClassLoader.loadClass(ClassLoader.java:504)

05-17 09:21:55.495: E/AndroidRuntime(2862): ... 20 more

05-17 09:21:55.495: E/AndroidRuntime(2862): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

 

aar파일 압축을 풀고 라이브러리 프로젝트를 만들었습니다.

다음과 같은 구조를 보일겁니다.

 

 

프로젝트명 우클릭 메뉴호출 > Properties > 좌측 Android 선택

Android 2.3.3 API 10을 선택합니다.

 

 

 

AndroidManifest.xml파일을 수정합니다.

minSdkVersion을 10으로 맞춥니다. 8,9로 하면 위와 같은 오류가 나네요.

 

 

이것때문에 한참 헤멨는데 다행히 해결했네요. ㅎㅎ

자알 되네요 ^^