[Unity3D] Android 빌드에서 “Failure to Initialize! Your hardware does not support this application, sorry!” 라고 출력되면?

어느 날 갑자기 매일 하던대로 빌드를 해서 APK를 뽑아 설치를 하고 실행을 했더니

Failure to Initialize! Your hardware does not support this application, sorry!

 

라고 출력되었습니다.

이유는 모르겠지만 그냥 갑자기 발생하기 시작했습니다.

검색해보니 원인은 굉장히 다양한 것 같지만....

 

[해결책]

Play Service Resolver에서 Force Resolve를 한번 수행한 뒤에 빌드를 다시하니까 괜찮아졌습니다.

[C#] using 문 내부에서 yield return을 하면?

Disposable객체를 Coroutine 내부에서 사용할 경우 과연 어느 타이밍에 파괴될지 궁금해서 한번 간단하게 테스트 코드를 작성해 봤습니다.

설마... yield return 할 때 마다 파괴되고 다시 생기진 않겠지...

테스트 하는 김에 using static 도 한번 사용해 봅니다.

using System;
using System.Collections;
using static System.Console;

namespace YieldReturnInUsingStatement
{
    class DisposeTest : IDisposable
    {
        public DisposeTest() {
            WriteLine("Construct");
        }
        public void Dispose() {
            WriteLine("Dispose");
        }
    }
    class Test
    {
        public IEnumerator Run() {
            using (new DisposeTest()) {
                for (int i = 0; i < 10; ++i) {
                    WriteLine(i);
                    yield return null;
                }
            }
        }

        public Test() {
            var e = Run();
            while (e.MoveNext()) {

            }
        }
    }
    class Program
    {
        static void Main(string[] args) {
            var test = new Test();
        }
    }
}

결과는 다행히 using 블록을 완전히 빠져나간 타이밍에 Dispose 되었습니다.

Construct
0
1
2
3
4
5
6
7
8
9
Dispose

 

using static은 참 편하네요. 전역 함수처럼 만들어 줍니다.

많이 쓰면 몸에 나쁠것만 같은 느낌.