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

Tensorflow GPU version - InternalError: Blas GEMV launch failed

잘 되던 코드가 갑자기 에러가 막!막! 떠서 뭘 구글링 할지도 모르겠었는데 운 좋게 찾았다. 1 2 3 4 # Assume that you have 12GB of GPU memory and want to allocate ~4GB: gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) cs 윈도우에서 Tensorflow GPU 버전을 이용할 때 일어나는 문제라는데, 세션을 그냥 tf.Session()으로 열지말고 위의 코드 대로 열면 해결 되더라. 출처 - https://stackoverflow.com/questions/34199233/how-to-prevent-tensorflow-from-allocating-the-totality-of-a-gpu-memory/34200194