반응형

전체 글 72

annotation 이란?

Android 개발을 하다보면 BoilerPlate Code가 많이 발생할때가 있습니다. 개발시 BoilerPlate Code를 매번 작성하는 것은 비효율적인 방법입니다. BoilerPlate Code를 제거하는 방법은 여러가지가 있는데 그 중 하나로 annotation을 사용하는 것입니다. 간단한 예로 androidx.annotation package에 보면 IntRange라고 하는 annotation 이 있습니다. 이 annotation은 특정 Int의 값 범위를 정해주는 annotation으로 이것을 쓰지 않는다면 매번 if문을 이용해 범위를 제한하는 코드를 써야 했을겁니다. 하지만 annotation을 사용하면 위의 이미지와 같이 코드가 훨씬 더 심플하고 가독성이 좋아지는 것을 알 수 있습니다. ..

Android 2022.01.10

Android Studio: unresolved reference for java and javax imports

개발하는 도중 새로운 Module로 Java & Kotlin Library Module을 추가하였다. 문제는 추가된 Library에서 Java와 JavaX 라이브러리 참조가 되지 않는다는 것이었는데 해결방법은 간단했다. jdk.table.xml 파일을 제거하고 다시 안드로이드 스튜디오를 재실행하면 되었다 1. jdk.table.xml 제거 2. Android Studio 재실행 - jdk.table.xml 위치 jdk.table.xml의 위치는 개발하고 있는 컴퓨터의 OS나 Android Studio Version에 따라 위치가 다르다 - Android Studio Version: [Android Studio Arctic Fox 2020.3] - Window: c:\user\yourname\AppData..

Android 2022.01.07

module 'numpy.random' has no attribute 'default_rng'

gensim을 사용하려고 하다가 다음과 같이 numpy.random has no attribute default_rng Error가 생겼다 해당 에러는 numpy version을 업데이트 하던가 아니면 나같은 경우 gensim을 사용하려다가 발생한 에러라 gensim을 다운그레이드 해야 한다. numpy는 업데이트 하게 되면 다른것들에 영향을 또 끼치게 되어 개발이 피곤해 지기에 나는 gensim을 다운그레이드 하였다. gensim을 지우고 3점대 버전으로 다시 사용하려고 하는데 pip uninstall gensim 명령어만으로는 부족하였다. gensim이 여전히 최신 버전을 사용하려고 하였다. 그리하여 나는 직접 pip package가 설치되어 있는 directory로 이동하여 gensim을 지우려고 ..

Issue Tracking 2021.12.26

UAAL android.content.res.Resources$NotFoundException: String resource ID #0x0

Android에서 Unity를 Library로 사용하기 위해 UAAL(Unity as a Library) 기능을 사용해보려고 하였다. Unity를 사용하면 내가 구현하고자 하는 기능을 손쉽게 구현할 수 있기 때문이었는데 사용하다가 아래와 같은 에러가 생겼다. android.content.res.Resources$NotFoundException: String resource ID #0x0 Android Resource쪽에 뭔가를 쓰려고 하는데 그것이 없어서 발생하는 문제로 보였는데 역시나 Android UAAL에서 기본으로 참조하는 resource가 있었다. 해당 에러는 안드로이드에 values/string.xml 파일에 아래의 것들을 추가해주면 해결되는 문제이다 Settings Game view

Issue Tracking 2021.12.20

[Android] 미리 빌드된 Dynamic Library(so file) Android Project에 추가하는 방법

FFMpeg Library를 Android Project에 사용해야 할 일이 생겨 ffmpeg dynamic library(.so file)를 Android Project에 추가하려다가 글을 써놓으면 다음에 또 추가해야될 일이 생겼을때 해매지 않을것 같아 글을 쓰게 되었습니다. 1. ndk Project 생성 Native C++로 프로젝트를 생성하게 되면 어느정도 Template이 완성되어 있어 손쉽게 추가할 수 있다. 나의 경우 ffmpeg library를 추가해야 하는데 header 파일들(.h file)과 미리 빌드된 동적 라이브러리(.so file)를 추가해줘야 한다. 2. header 파일과 동적 라이브러리 Android Project에 추가 2-1 header file 추가 'app/src/m..

Android 2021.12.10

[iOS] Failure starting audio queue \M-3<…>

iOS에서 STT와 TTS를 이용한 작업을 하다 2개를 번갈아 가며 사용하려고 하는데 STT를 사용하다가 TTS를 사용하려고 하니 아래와 같은 문제가 발생하였다. Failure starting audio queue \M-3 찾아보니 audioSession.setCategory를 사용해 audio 사용에 관해 명확히 지정을 해야 한다고 나왔다. NSError* error; [[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryPlayback error:&error]; AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:textStr]; utterance.voi..

Issue Tracking 2021.11.02

[Unity][ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed

Unity로 프로젝트를 만들고 열다가 문제가 발생하면서 에디터가 열리지 않는 문제가 발생 했습니다. 그땐 프로젝트의 최상단 경로에서 Library 디렉토리로 이동하여 ScriptMapper 파일을 찾아 삭제한 후 다시 프로젝트를 열면 문제가 해결되었습니다. ScriptMapper가 어떤 파일인지 잘 모르겠지만 생성 시간이 과거로 되어 있던데 지웠다가 다시 프로젝트를 여니 새로 생성되는걸로 봐선 과거에 설정되어 있는 값을 가져와서 문제가 되는것 같습니다. 다시 생성되게 하면 해결되네요

Issue Tracking 2021.10.30

[Unity] Animator Animation 재시작 방법

Unity에서 Animation을 다시 시작하고 싶은 경우가 있다. 그냥 loop 속성을 주면 다시 시작은 할 수 있지만 문제는 특정한 경우에 다시 시작하고 싶은 경우이다. loop 처럼 계속 다시 시작하는 것이 아닌 특정 버튼을 누른다던가 하는 경우. 제일 쉬운 방법은 Animator Component가 포함된 Object을 비활성화 했다가 활성화 하면 되게 해결되는 경우가 많다. 하지만 문제는 Animator Component가 포함된 Object를 비활성화 하면 안되는 경우!!!, 이런 경우 Animator Component를 비활성화하고 활성화 하면 될 줄 알았지만 되지 않았다. ㅠㅠㅠㅠ 그냥 Animator Component를 비활성화 -> 활성화만 하는 것이 아닌 'Rebind()'라고 하는 ..

Unity 2021.10.29

[비지도 학습]k 평균 군집화

비지도 학습으로 사전에 군집수(=k)가 정해져야 알고리즘이 실행되는 비지도 학습 머신러닝 알고리즘이다. 군집수는 하이퍼 파라미터로 인간이 정해야 하고 군집의 중심 위치는 보통 랜덤하게 설정한다. k 평균 군집화는 아래의 2단계를 반복적으로 실행하며 비지도 학습을 한다. 1. 모든 개체들을 군집 중심을 통해 할당 2. 중심을 군집 경계에 맞게 새로 업데이트 예를 들어 데이터들을 2개의 군집으로 나누고 싶다고 할때 k의 값을 2로 맞추고 처음엔 k의 위치를 랜덤하게 설정, 그 후 각 데이터가 군집의 중심으로 부터 가까운것들끼리 하나의 군집으로 묶이고 다 묶이고 나면 군집의 중심을 한 가운데로 재설정 한다. 그 후 다시 개체들을 군집의 중심으로 부터 가까운 것들끼리 묶고 다 묶고 나면 군집의 중심을 가운데로 ..

AI/MachineLearning 2021.10.28