Skip to main content

우분투 18.04 react-native run-android 실행 시 javax.net.ssl.SSLException 에러


Image result for react native


리엑트 네이티브를 시작했다. (참고)

기본 튜토리얼에서 create-react-native-app를 사용하는 예제는 쉽게 실행됐는데

바로 요놈!

react-native-cli를 써서 

react-native init [프로젝트 이름] 로 실행하는 예제는 뭐가 문제인지

실행한번 하는데 엄청나게 애를 먹였다.

우선 리액트 공식 홈페이지에서 하라는데로 다 했다는 전제하에 참고하시면 된다.

나름 다 잘 따라했다고 생각했는데 문제는 자바(jdk)였다.

JAVA_HOME 환경변수 설정이 안되어 있었다.

일단 초기에 echo $JAVA_HOME 이라고 쳤는데 아무 것도 안뜨면

환경변수 설정이 아예 안돼있는 것이다.



순서 대로 체크리스트를 만들어보자면,

1. jdk버전을 확인하자

Java Development Kit

React Native requires a recent version of the Java SE Development Kit (JDK). Download and install JDK 8 or newer if needed.
cd /usr/lib/jvm/ 를 하면 현재 설치된 jdk들을 확인 할 수 있다.

jdk8 이상의 버전이 없다면 아래 명령어로 다운 받자
sudo add-apt-repository ppa:webupd8team/java 
sudo apt-get update 
sudo apt-get install oracle-java8-installer
2. JAVA_HOME 환경 변수를 등록하기 위해
cd ~ 를 하여 홈으로 이동하고
숨김 파일인 .bashrc를 수정하자.
튜토리얼에는 $HOME/.bash_profile이라고 되어 있지만
18.04에서는 저 파일이 없어서 알아보니 bashrc를 수정하면 된다.

나는 vim을 쓰므로
vim .bashrc 라고 입력했다. nano나 다른 편집기를 사용해도 좋다.
그리고 아래 명령어를 .bashrc 맨 밑에다 적어준다.
물론 공식 홈페이지에서 말한

export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
얘네도 필수적으로 들어가야 한다.

export JAVA_HOME="/usr/lib/jvm/java-8-openjdk"
export PATH=$JAVA_HOME/bin:$PATH
아래 명령어를 치면 수정된 .bashrc 파일이 업데이트 된다.

source $HOME/.bash_profile
그리고 바로


sudo rm /etc/ssl/certs/java/cacerts
sudo update-ca-certificates -f
얘를 써줘야한다

certificate라는 거 보니 뭔가 권한 관련된 것 같은데

그렇게 안되던게 저거 치고 딱 react-native run-android하니까 된다!

예이!

근데 이거 해결하니까 또

> Building 59% > :app:mergeDebugResources

이렇게 뜨면서 59%에서 멈춰버려서

sudo apt-get install lib32z1
sudo apt-get install zlib1g:i386

이 명령어로 해결한건 안 비밀...

이건 깃헙 이슈에 있는 것 보니 특정 라이브러에 관한 리엑트 네이티브 에러인 것 같다.

참고




참고적으로 다른 사람들은 이걸로 해결 했다는 경우도 많아서 적어둔다.
react-native init을 통해 만든 프로젝트 폴더 내의 gradlew 파일의 실행권한을 바꿔주는 건데
해당 폴더로 가서

chmod 755 android/gradlew
이렇게 해주면 된다.



Comments

Popular posts from this blog

ftp, sftp, ssh 차이점

telnet ==> ssh  ftp ==> sftp  p2p방식이라 보안에 취약한것이 아니라 telnet과 ftp 인 경우는 패킷을 캡쳐해서 보면, 평문이기 때문에 보여져서는 안될부분(패스워드, 계정 등)이 쉽게 노출된다. 이는 아주 큰 문제를 발생시킬 수 있다. 이런 취약점을 보안하기 위해서 telnet은 ssh로  f tp는 sftp로 암호화된 프로토콜 SSL을 사용하는게 좋다. 이렇게 하면 모든 패킷을 암호화 해서 주고 받으므로  패킷을 잡아내더라도 해독하는데 슈퍼컴퓨터로 1달 이상 걸리게 된다.  cf)  telnet 과 ftp의 차이 telnet: 쉘권한을 취득(ex. bash)하여 마치 로컬 컴퓨터를 다루는 것처럼  실행되는 접속 방법  ftp: 파일을 전송하기 위한 프로토콜.  telnet으로 파일 전송을 못하며(zmodem프로토콜을 사용하면 되지만, 엄청 느림) ftp로 시스템을 관리하거나 데몬을 띄우는 것은 불가능.  Reference https://wpengine.com/resources/how-to-access-wordpress-files-using-sftp/ https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=linuxserver&wr_id=19987

Anaconda tensorflow-gpu 설치 에러 [WinError 126] 지정된 모듈을 찾을 수 없습니다, importError: Could not find 'cudnn64_6.dll'

anaconda를 이용하여 tensorflow cpu 버전을 사용하다가 training이 끝나지를 않아서  gpu 버전을 써보기로 했다. cpu 버전은 나름 쉽게 설치했었는데 gpu는 조금 더 까다로웠다. 블로그들을 참고해보니 막 무슨 파일을 다운 받고 어디에 붙여넣고 하라는데  처음에는 이해가 잘 안됐다. 내가 이해한대로 해보자면, 우선 다른 블로그를 참고해서 아나콘다와 tensorflow cpu 버전 설치 직전까지 진행해주시고, 필요한 파일은  CUDA 8.0 CuDNN 6.0 두 파일을 순서대로 설치. 대충 내용을 보니 CUDA 8.0은 그냥 설치하는 파일이고 CuDNN는 설치한 cuda 폴더 안에 추가하는 라이브러리, 기타등등 파일인데 다른 블로그에서는 CuDNN 폴더를 다 붙여 넣으라고도 했지만 딱 봐도 확연히 안에 들어있는 파일이 달라서 CuDNN 폴더에 있는 파일을 기존 cuda 폴더 안에 붙여 넣어주었다. 아무튼 여기서 주의해야 될 점은 CuDNN이 6.0이라는 것이다. 다른 블로그에서는 5.1을 받으라고 되어있는데 이상하게 내 anaconda에서는 계속 cudnn64_6.dll 파일을 찾을 수 없다고 에러가 떴다. 바로 이 에러이다. 알아보니 5.1은 bin 폴더안에 cudnn64_5.dll를 가지고 있고 6.0이 cudnn64_6.dll을 갖고 있었다. cudnn64_6.dll을 기본 설치 폴더 기준 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin 안에 붙여넣으니 성공적으로 tensorflow-gpu를 이용할 수 있게 되었다.