티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
Why doesn't "System.out.println" work in Android?
"System.out.println"이 안드로이드에서 작동하지 않는 이유
문제 내용
I want to print something in console, so that I can debug it. But for some reason, nothing prints in my Android application.
디버깅할 수 있도록 콘솔에서 무언가를 인쇄하고 싶습니다. 하지만 어떤 이유에서인지 내 안드로이드 애플리케이션에 아무것도 인쇄되지 않는다.
How do I debug then?
그럼 디버그는 어떻게 하나요?
public class HelloWebview extends Activity {
WebView webview;
private static final String LOG_TAG = "WebViewDemo";
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.setWebViewClient(new HelloWebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new MyWebChromeClient());
webview.loadUrl("http://example.com/");
System.out.println("I am here");
}
높은 점수를 받은 Solution
Correction:
On the emulator and most devices System.out.println
gets redirected to LogCat and printed using Log.i()
. This may not be true on very old or custom Android versions.
수정:
에뮬레이터와 대부분의 장치에서 System.out.println은 LogCat으로 리디렉션되고 Log.i()를 사용하여 인쇄됩니다. 이는 매우 오래된 Android 버전이나 사용자 지정 Android 버전에서는 해당되지 않을 수 있습니다.
Original:
There is no console to send the messages to so the System.out.println
messages get lost. In the same way this happens when you run a "traditional" Java application with javaw
.
Instead, you can use the Android Log
class:
원본:
System.out.println 메시지가 손실되도록 메시지를 보낼 콘솔이 없습니다. 마찬가지로 자바와 함께 "전통적인" 자바 애플리케이션을 실행할 때 이러한 현상이 발생한다.
대신 Android Log 클래스를 사용할 수 있습니다.
Log.d("MyApp","I am here");
You can then view the log either in the Logcat view in Eclipse, or by running the following command:
그런 다음 Eclipse의 Logcat 보기에서 또는 다음 명령을 실행하여 로그를 볼 수 있습니다.
adb logcat
It's good to get in to the habit of looking at logcat output as that is also where the Stack Traces of any uncaught Exceptions are displayed.
포착되지 않은 예외의 스택 추적이 표시되는 곳이기도 하므로 logcat 출력을 확인하는 습관을 들이는 것이 좋습니다.
The first Entry to every logging call is the log tag which identifies the source of the log message. This is helpful as you can filter the output of the log to show just your messages. To make sure that you're consistent with your log tag it's probably best to define it once as a static final String
somewhere.
모든 로깅 호출의 첫 번째 항목은 로그 메시지의 소스를 식별하는 로그 태그입니다. 이는 메시지만 표시하도록 로그 출력을 필터링할 수 있으므로 유용합니다. 로그 태그와 일관성을 유지하려면 어딘가에 정적 최종 문자열로 한 번 정의하는 것이 가장 좋습니다.
Log.d(MyActivity.LOG_TAG,"Application started");
There are five one-letter methods in Log
corresponding to the following levels:
Log에는 다음 레벨에 해당하는 5개의 한 글자 메소드가 있습니다.
e()
- Errorw()
- Warningi()
- Informationd()
- Debugv()
- Verbosewtf()
- What a Terrible Failure
e() - 오류
w() - 경고
i() - 정보
d() - 디버그
v() - 상세
wtf() - 정말 끔찍한 실패입니다.
The documentation says the following about the levels:
Verbose should never be compiled into an application except during development. Debug logs are compiled in but stripped at runtime. Error, warning and info logs are always kept.
Verbose는 개발 중을 제외하고는 애플리케이션으로 컴파일되어서는 안 됩니다. 디버그 로그는 컴파일되지만 런타임 시 제거됩니다. 오류, 경고 및 정보 로그는 항상 보관됩니다.
가장 최근 달린 Solution
Yes it does. If you're using the emulator, it will show in the Logcat view under the System.out
tag. Write something and try it in your emulator.
네 그렇습니다. 에뮬레이터를 사용하는 경우 Logcat 보기의 System.out 태그 아래에 표시됩니다. 무언가를 작성하고 에뮬레이터에서 사용해 보세요.
출처 : https://stackoverflow.com/questions/2220547/why-doesnt-system-out-println-work-in-android
'개발 > 안드로이드' 카테고리의 다른 글
Activity has leaked window 문제 수정하기 (0) | 2022.12.05 |
---|---|
사이트가 HTTPS이지만 WebView에서 ERR_CLEARTEXT_NOT_PERMITED 발생 (0) | 2022.12.05 |
현재 액티비티에서 루트 뷰 가져오기 (0) | 2022.12.04 |
RecyclerView 오류(java.lang.IndexOutOboundsException) 수정하기 (0) | 2022.12.04 |
'기본 FirebaseApp이 초기화되지 않았습니다' 문제 수정 (0) | 2022.12.04 |