Android에서 assert를 사용하는 방법은 무엇입니까?
assert obj != null : "object cannot be null"Android 기기 에서 사용하고 싶습니다 . 어설 션이 작동하지 않는 것 같아서 온라인으로 검색 한 결과이 로컬 솔루션을 찾았습니다.
adb 쉘 setprop debug.assert 1
내 로컬 컴퓨터에서 작동합니다.
내 이클립스 프로젝트를 사용하여이 명령을 실행하고 싶습니다 (소스 제어에 있음). 어떻게하니?
감사!
Assert는 대부분의 경우 사용자가 디버그 모드에서 실행되지 않고 최적화 된 코드로 실행되기 때문에 Android에서 작동하지 않습니다. 따라서 적절한 해결책은 다음과 같은 코드를 사용하여 수동으로 예외를 throw하는 것입니다.
if (obj==null) throw new AssertionError("Object cannot be null");
설계 상 Assert는 릴리스 타임 코드가 아닌 디버그 코드 용이라는 점에 유의해야합니다. 따라서 이것은 Assert를 던지는 최선의 사용이 아닐 수도 있습니다. 하지만 그래도 그렇게 할 수 있으니까 ...
Android 4.x 기기에서 테스트되었으며 Android 기기에서 Java assert를 사용할 수 있습니다.
- /system/build.prop (예 : X- plore)을 편집하고 파일 끝에 다음 줄을 추가합니다. debug.assert = 1
- 전화 재부팅
이제 Android 장치가 검사를 어설 션 할 수 있으며 어설 션 검사가 실패하면 AssertionError를 발생시킵니다.
편집하다:
또 다른 쉬운 방법은 장치가 다시 시작될 때까지 PC에서 어설 션을 활성화하는 것입니다.
platform-tools\adb shell setprop debug.assert 1
예를 들어 Windows에서 .bat 파일을 생성하고 장치가 연결되면 실행할 수 있습니다.
고유 한 assert 메서드를 만듭니다.
public static <T> T assertNotNull(T object) {
if (object == null)
throw new AssertionError("Object cannot be null");
return object;
}
동일한 객체를 반환하면 간결함을 위해 할당에서 이것을 사용할 수 있습니다.
if (somevar == null) throw new RuntimeException();
RuntimeException ()을 적절한 예외 하위 유형으로 바꿉니다.
Android에서 어설 션에 사용하는 클래스를 공유하면 다음과 같이 어설 션을 작성할 수 있기 때문에 이름이 좋고 매우 우아합니다.
Assert.that(obj!=null, "Object should not be null");
수업 코드는 다음과 같습니다.
public class Assert {
public static void that(boolean condition, String message) {
if (!condition) {
throw new AssertionError(message);
}
}
}
도움이 되었기를 바랍니다.
- 사용, 자바 가상 머신에서 주장 사용할 수 있도록하는 방법 의 enableassertions 또는 - EA의 명령 줄 옵션을
- Window의 명령 프롬프트에서
java –ea YourApp
- 에 안드로이드 스튜디오 3.0에 도구 / 편집 구성 / VM 옵션 , 입력 - 의 enableassertions 또는 - EA
참고 URL : https://stackoverflow.com/questions/6176441/how-to-use-assert-in-android
'programing tip' 카테고리의 다른 글
| 파이썬의 바이트 배열 (0) | 2020.10.30 |
|---|---|
| 한 양식에서 다른 양식으로 값 보내기 (0) | 2020.10.30 |
| TypeError : 데이터를 지수 적으로 맞추려고 시도하는 동안 길이 1 배열 만 Python 스칼라로 변환 될 수 있습니다. (0) | 2020.10.29 |
| 브레이크 (루프 / 스위치)에 응답하는 내부 구조에서 외부 루프를 끊는 방법 (0) | 2020.10.29 |
| 맵을 구조체로 변환 (0) | 2020.10.29 |