ANDROID

[아두이노]/[PC] 시리얼 통신 - android studio migration Ver

지니 2017. 8. 25. 01:00
반응형

[아두이노]/[PC]  시리얼 통신 - android studio migration Ver




구글을 검색하다 보면 쉽게 Eclipse 버전 USB Serial 통신 예제를 구할 수 있다.

(setup 설정도 다 Eclipse 에 맞게 설명되어있다)


하지만 , 이젠 개발자들 대부분 안드로이드 개발할 때 이클립스를 버리고 안드로이드 스튜디오로 넘어온 이 시점에.. 이클립스로 프로젝트를 진행 할 순 없었다.



1. 샘플 소스준비


https://github.com/godstale/Arduino-Serial-Controller


https://github.com/mik3y/usb-serial-for-android



두 곳 들려서 다운받고 zip 풀어둔다.



2. Setup 하기




두가지 를 준비했으면,







2-1. import Project (Eclipse ADT)

Arduino-Serial-Controller-master 디렉토리 임포트


사진에 보이는 import project 를 클릭  --> Create project from  existing Sorces 








그 다음은 Next 만 계속 눌러서 끝내면 된다.





이렇게 까지 나왔으면 완료! 

당연히 JAVA 파일만 있으므로 Run 은 안된다.




2-2. usb-serial-for-android-master 프로젝트 import 하기.


[File] - [New] - [import Project] 메뉴 선택



usb-serial-for-android-master/usb-serial-for-android-master  디렉토리 임포트 


(usb-serial-for-android-master 디렉토리 말고! usb-serial-for-android-master/usb-serial-for-android-master 디렉토리를 import 한다! 이미지를 잘 봐주세요)




ok 까지 누르면 스튜디오가 하나 더 켜지면서 빌드가 될것이다.



자! 여기서 스튜디오를 다 끄고 두번째 이미지의 화면으로 가서 

open an exist android studio project 클릭하면 아래같은 화면이 뜰것이다. 

푸른색으로 커서가 클릭된 프로젝트를 오픈한다.

이미지를 보면 저 안에 usbserialExamples , usbserialForAndroid 가 들어있는게 보인다. 위 과정으로 최종적으로 만들어진 프로젝트가 아래의 푸른색 커서가 올라간 프로젝트다! 




오픈하면 으음~? 갑자기 업데이트 하라고하네.. 하란대로 업데이트를 한다!


여기까지 했으면 Setup까지 완료되었다.

이제부터는 프로젝트 Run 을 위한 자잘한 오류를 잡는다.



3. 빌드실패 오류 잡기


사실 위 포스팅을 하기 위해 총 3번의 과정을 했다.


1. 사무실에서 하기 (결론은 실패)

2. 집에서 하기(결론은 성공, 캡쳐를 안해서 다시 진행)

3. 글 쓰면서 하기(성공)



그런데 3번의 과정 모두 동일한 오류가 동일한 순서대로 나왓다. 아마 이 글을 보고 따라하시는 분들 대부분이 똑같은 오류를 똑같은 순서로 해결하면 될듯하다.

캡쳐는 없습니다. 글을 읽고 간단히 해결 가능합니다



3-1. 


Warning:Android Studio 2.3.3.0 requires Gradle 2.14.1 (or newer) but project is using version 2.2.1.

It is strongly recommended that you update Gradle to version 2.14.1 or newer.

<a href="fixGradleElements">Fix Gradle version (as part of the update, the Android plugin will be updated to version 2.3.3)</a><br><a href="https://developer.android.com/studio/releases/index.html#Revisions">Open Documentation</a>


푸른색 글씨 클릭해서 update 진행해서 해결


3-2.


Gradle 'usb-serial-for-android-master' project refresh failed

Error:Application and test application id cannot be the same: both are 'com.hoho.android.usbserial.examples' for debugAndroidTest


"com.hoho.android.usbserial.examples" 가 동일하면 안된다고 한다.


build.gradle(Module:usbSerialExamples) 파일의 


testApplicationId "com.hoho.android.usbserial.examples"

testApplicationId "com.hoho.android.usbserial.examples2" 로 "2"만 추가로 붙여 이름을 바꿧다.

try Again 눌른다.





3-3.


Error:The SDK Build Tools revision (19.1.0) is too low for project ':usbSerialForAndroid'. Minimum required is 25.0.0

<a href="install.build.tools">Install Build Tools 25.0.0, update version in build file and sync project</a><br><a href="openFile:D:/AndroidStudioProjects_201708/usb-serial-for-android-master/usb-serial-for-android-master/usbSerialForAndroid/build.gradle">Open File</a>


Error:The SDK Build Tools revision (22.0.1) is too low for project ':usbSerialExamples'. Minimum required is 25.0.0

<a href="install.build.tools">Install Build Tools 25.0.0, update version in build file and sync project</a><br><a href="openFile:D:/AndroidStudioProjects_201708/usb-serial-for-android-master/usb-serial-for-android-master/usbSerialExamples/build.gradle">Open File</a>



SDK 버전 19.1.0,22.0.1  이 너무 낮단다.. 최소 25.0.0 이란다.. 푸른색 글씨를 클릭해서 update 해준다.


이제 Run 을 누르면 빌드가 될것이다.



4. 프로그램 오류 잡기


사실 프로그램 오류잡기.. 라고 타이틀을 칭하기도 브끄럽다..ㅎㅎ


시리얼 데이터를 받아보면 아마(보드레이트가 맞는다면 잘 나올것이당)


0x000000 00 00 00 00 00...... 이런식으로 깨질것이다.

나의 경우는 보드레이트가 9600인데, 


\usb-serial-for-android-master\usb-serial-for-android-master\usbSerialExamples\src\main\java\src\com\hoho\android\usbserial\examples\SerialConsoleActivity.java

파일의

  sPort.setParameters(115200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE); 를 보면 

마이그레이션 하는도중 9600 보드레이트가 --> 115200 으로 올라가버린게 보인다


이걸 자신의 보드레이트(9600)에맞추니 잘 나온다. 





여기까지 했으면 Eclipse - > Android Studio 마이그레이션이 모두 끝났다.


하... IOS 배포 포스팅 이후 가장 정성을 쏟은 글 같다..도움이 되었다면 클릭한번! 해주고 가세요~


반응형