블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2737)
Unity3D (817)
Programming (474)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (228)
협업 (58)
3DS Max (3)
Game (12)
Utility (136)
Etc (96)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (53)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
04-25 09:56

[My Case]

[Error] java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/HttpHost

[수정] Unity Android Target API Level을 26으로 낮춰서 해결

 

-------------------------------------------------------------------------------------------------

 

Do any of the following:

1- Update the play-services-maps library to the latest version:

com.google.android.gms:play-services-maps:16.1.0

 

2- Or include the following declaration within the <application> element of AndroidManifest.xml.

<uses-library android:name="org.apache.http.legacy" android:required="false" />

 

 

[출처]

https://stackoverflow.com/questions/50461881/java-lang-noclassdeffounderrorfailed-resolution-of-lorg-apache-http-protocolve

 

java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/ProtocolVersion

I 've met such error when I use Android studio 3.1 to build an Android P 's app, the apk can be made ,but when I use it on Android P emulator , it will crash and throw below info, more details see ...

stackoverflow.com

 

반응형
Posted by blueasa
, |

[출처] https://developside.tistory.com/85

 

 

어제 앱을 개발 중 glide v4를 사용하여 웹에 있는 그림을 load 하였는데, 아래와 같은 예외를 주며 동작을 하지 않았습니다.

 

com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTE

There was 1 cause:

java.io.IOException(Cleartext HTTP traffic to ~~~~ not permitted)

 call GlideException#logRootCauses(String) for more detail

 

처음에는 glide 4로 버전업을 하면서 뭔가 바뀐 것이 있나 싶어서 glide 문서를 뒤지고, 관련 코드들을 보았는데 특별한 것이 없었습니다. 그림을 load 할 대상 주소를 보던 중 문득 예전에 안드로이드가 https 가 아닌 http 프로토콜 접속을 제한한다는 구글 블로그 내용이 떠올랐습니다.

 

  [그림1] google develops korea blog 내용 발췌

 

그래서 구글 검색을 해보니 실제로 이 예외는 안드로이드9(APL Lv 28) 부터 강화된 네트워크 보안정책으로 인한 오류였습니다.

몇몇 사이트를 돌아다니며, 확인해보니 3가지 해결방법이 있었습니다.

저는 1번의 방법으로 해결하였습니다. 다른 방법도 함께 소개하오니 많은 도움되셨으면 합니다.

 

1. AndroidManifest.xml 파일의 <application> 부분에 android:usesCleartextTraffic="true" 로 설정

cleartext HTTP와 같은 cleartext 네트워크 트래픽을 사용할지 여부를 나타내는 flag로 이 플래그가 flase 로 되어 있으면, 플랫폼 구성 요소 (예 : HTTP 및 FTP 스택, DownloadManager, MediaPlayer)는 일반 텍스트 트래픽 사용에 대한 앱의 요청을 거부하게 됩니다.

이 flag를 설정하게 되면 모든 cleartext 트래픽은 허용처리가 됩니다.

 

2. networkSecurityConfig 파일을 생성하고, AndroidManifest 에 등록

 

res/xml/network_security_config.xml 아래와 같이 추가합니다.

<domain includeSubdomains="true">ebookfrenzy.com</domain> 등록된 도메인은 https 가 아니어도 허용이 됩니다.

 

<?xml version="1.0" encoding="utf-8"?>

<network-security-config>

    <domain-config cleartextTrafficPermitted="true">

        <domain includeSubdomains="true">ebookfrenzy.com</domain>

    </domain-config>

</network-security-config>

 

그리고, 아래와 같이 추가할 경우는 secure.example.com 도메인만 항상 HTTPS를 통해서만 수행하게 됩니다.

 

<?xml version="1.0" encoding="utf-8"?>

<network-security-config>

    <domain-config cleartextTrafficPermitted="false">

        <domain includeSubdomains="true">secure.example.com</domain>

    </domain-config>

</network-security-config>

 

 

그 다음에 AndroidManifest.xml 파일의 <application> 부분에 networkSecurityConfig속성 추가

<application 

android:networkSecurityConfig="@xml/network_security_config" 

~~~ >

</application>

 

 

3.Android Manifest.xml 파일에서 targetSandboxVersion를 1로 설정

SandboxVersion 속성값이 높을수록 보안 수준이 높아지며, 2일 경우 usesCleartextTraffic의 기본값은 false 입니다.

따라서, 이 속성의 값을 1로 변경하면 문제를 해결할 수 있습니다.

다만 Android 8.0 (API 26) 이상을 타겟팅하는 Android Instant Apps의 경우 이 속성을 2로 설정해야합니다.

 

참고로 앱이 설치되면 이 속성값을 더 높은 값으로 만 업데이트 할 수 있다고합니다.

이 속성값을 다운 그레이드하려면 앱을 제거후 재설치 해야합니다.

 

 

[Reference]

Android Developers Blog - 

https://android-developers.googleblog.com/2018/04/protecting-users-with-tls-by-default-in.html

 

Stackoverflow -

https://stackoverflow.com/questions/45940861/android-8-cleartext-http-traffic-not-permitted

 

Android Developers site -

https://developer.android.com/training/articles/security-config

https://developer.android.com/training/articles/security-config#CleartextTrafficPermitted

https://developer.android.com/guide/topics/manifest/manifest-element#targetSandboxVersion

 

Blog -

https://nobase-dev.tistory.com/category/Android%EA%B0%9C%EB%B0%9C/Tips

 

 

반응형
Posted by blueasa
, |

[링크] http://kosis.kr/visual/bcc

 

http://kosis.kr/visual/bcc

 

kosis.kr

 

반응형
Posted by blueasa
, |

반응형
Posted by blueasa
, |

사용하던 확장 프로그램이 막혀서 사용 불가가 된 경우에 사용해 볼 수 있는 간단한 팁입니다.

예를 들어서 youtube center라는 확장앱이 현재 막혀 있는 데요. 

https://bitbucket.org/YePpHa/youtube-center/downloads 에서 youtubecenter.crx 파일을 다운 받습니다.

다운받은 crx파일을 zip으로 확장자를 바꾸고 압축을 풉니다.

구글 크롬에서 설정의 확장프로그램을 연 후에 맨 위 우측의 개발자 모드를 선택하면

압축해제된 확장프로그램 로드를 선택할 수 있게 됩니다. 

압축해제된 확장프로그램 로드로 좀전에 풀어놓은 youtubecenter폴더를 선택하면 youtubecenter확장앱을 사용할 수 있는 상태가 됩니다.

제가 사용하던 몇가지 크롬앱들은 이 방법으로 가능했는데 모두 가능한지는 모르겠습니다.

^^

<주의점>

1. 로드한 폴더를 지우면 크롬에서도 지워지므로 반드시 지우지 않을 곳에 풀어 놓습니다.

2. 크롬 실행 시 개발자모드 확장 프로그램 사용중지 란 팜업이 뜨는 데 이 것이 싫다면 크롬 설정의 고급설정표시의 "chrome 종료 후에도 백그라운드 앱을 계속 실행"을 확성화(체크) 합니다.

3. 설치가 되지 않는 경우는 대부분 manifest_version 문제입니다. (아래글 참조)

 

몇가지 구글 검색 중 알게 된 항목이 있어서 추가합니다.

http://superuser.com/questions/767286/re-enable-extensions-not-coming-from-chrome-web-store-on-chrome-v35-with-enhan

- Developer mode route

1. Download the crx file and unpack the extension using your favorite decompresser. Take note of the directory where you placed it.

2. Open the extension page, activate "Developer Mode"

3. Click "Load unpacked extension..."

4. Search trough your directory tree for the directory where you unpacked your extension and click OK. If your extension is called "my extension" then select "my extension" directory.

Advantages: You don't have to install anything else. Disadvantages: Chrome nags you to disable the extension each start up.

- from release channel

Install the Dev or Canary version of Chrome. Just go to the corresponding link and install the browser. Note that the Canary version will install a parallel version of Chrome which will be independent.

Advantage: No nagging, you get the most newest features earlier. Disadvantages: You also get all the bugs earlier. Installing Canary effectively uses the double disk space than a single installation of Chrome and also you have to migrate all your extensions over

- 테스트 동영상을 추가합니다.

 

- youtube center 정식버전에서 fullscreen player에 문제가 있어서 개발자 버전링크를 합니다.
https://github.com/YePpHa/YouTubeCenter/wiki/Developer-Version

- 크롬 확장앱 crx를 풀어서 로드시에 설치가 안 되는 경우는 대부분 crx 파일을 만들 때 manifest file format을 지키지 않아서 생기는 문제입니다. "manifest_version": 2 은 반드시 정의 하도록 하고 있습니다.  이경우에는 manifest.json에 추가 하면 됩니다.
https://developer.chrome.com/extensions/manifest

 

 

[출처] https://www.clien.net/service/board/park/6081229

 

구글 크롬의 막힌 확장앱을 사용하는 팁입니다. : 클리앙

사용하던 확장 프로그램이 막혀서 사용 불가가 된 경우에 사용해 볼 수 있는 간단한 팁입니다. 예를 들어서 youtube center라는 확장앱이 현재 막혀 있는 데요. https://bitbucket.org/YePpHa/youtube-center/downloads 에서 youtubecenter.crx 파일을 다운 받습니다. 다운받은 crx파일을 zip으로 확장자를 바꾸고 압축을 풉니다. 구글 크롬에서 설정의 확장프로그램을 연 후에 맨 위 우측의 개발자 모

www.clien.net

 

반응형
Posted by blueasa
, |

배포시 가장 큰 골치덩어리중 하나는 AndroidManifest.xml 파일 수정문제일 것이다.
Android Plugin을 만들어서 넣자니 짜증나고... 그럴때 간단하게 AndroidManifest.xml 파일을 수정할 수 있는 방법을 공개한다.

프로젝트 Root폴더에 보면 "Temp" 폴더가 생성되어 있을텐데 거길 가만히 보면 "StagingArea"라는 폴더가 보인다.
여기로 들어가면 다음과 같이 폴더가 구성되어 있다.

빌드에서 사용될 각종 Resource 파일들이 보일텐데 이중에 필요한건 
AndroidManifest.xml 파일과 res 폴더 두개이다. 이 2개를 선택해서 CTRL+C 해서 복사하고 
유니티로 돌아와서 "Plugins" 폴더를 만든다음 다시 "Android"폴더를 만들고 거기에 복사해 넣자.

이제 복사한 AndroidManifest.xml 파일을 열어서 마음대로 주무르면 됨. 끝!

 

[출처] http://www.wolfpack.pe.kr/872

 

Unity3D AndroidManifest.xml 파일 Custom으로 수정하고자 할때

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다

www.wolfpack.pe.kr

 

반응형
Posted by blueasa
, |
반응형
Posted by blueasa
, |
반응형
Posted by blueasa
, |
반응형

'Programming > Shader' 카테고리의 다른 글

HLSL 내장함수  (0) 2012.06.25
쉐이더(Shader) 2.0 3.0 차이  (0) 2012.06.25
Posted by blueasa
, |

[추가]

스토어로 올라간 빌드는 iTunes Connect에서 dSYM 파일을 받아야 합니다.

[위치] iTunes Connect-나의 앱-(해당 앱)-활동 내역-해당 빌드 버전-일반 정보-기호 포함-dSYM 다운로드

 

Crashlytics에서 crash report를 보는데 Missing dSYM 창이 떴습니다.

dSYM 파일이 뭐길래 그러지 찾아보니까 dSYM 파일은 앱의 디버그 심볼을 저장하고 있다고 합니다. [링크]

Xcode의 메뉴에서 Window - Organizer 에서 아카이빙 된 파일들을 찾아 Show in Finder로 xcarchive파일을 확인할 수 있습니다.(제 컴퓨터에서는 열리지 않았습니다.)

또는 Xcode - Preferences - Locations - Archives에서 경로를 확인할 수 있습니다.

해당 경로에서 해당 날짜에 해당하는 xcarchive 파일을 확인하고, 패키지 내용보기를 통해 dSYM 파일을 얻을 수 있었습니다.

 

정리

dSYMs 파일은 Window - Organizer 에서 확인하거나 Xcode - Preferences - Locations - Archives에서 xcarchive 파일을 찾아 얻을 수 있습니다.

 

[출처] http://minsone.github.io/mac/ios/where-is-the-dsym-file-in-xcode

 

[Xcode]dSYM 파일은 어디 있나요?

Crashlytics에서 crash report를 보는데 Missing dSYM 창이 떴습니다. dSYM 파일이 뭐길래 그러지 찾아보니까 dSYM 파일은 앱의 디버그 심볼을 저장하고 있다고 합니다. [링크] Xcode의 메뉴에서 Window - Organizer 에서 아카이빙 된 파일들을 찾아 Show in Finder로 xcarchive파일을 확인할 수 있습니다.(제 컴퓨터에서는 열리지 않았습니다.) 또는 Xcode - Preferences - Loca

minsone.github.io

 

반응형
Posted by blueasa
, |