Android Studio 2.3.3. 나는 안드로이드 라이브러리로 새 모듈 (일반적인)를 추가Log.d가 모듈에서 작동하지 않습니까?
때문에 프로젝트 구조는 다음과 같습니다
프로젝트에서MyProject
-app
--src
---main
----java
----MainActivity.java
-common
--src
---main
----java
----StringUtil.java
settings.gradle :
include ':app', ':common'
에서 응용 프로그램/build.gradle :
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':common')
testCompile 'junit:junit:4.12'
}
여기에 63,210
이 응용 프로그램에서 니펫을/MainActivity :
import myproject.customer.BuildConfig;
import myproject.customer.common.StringUtil;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (BuildConfig.DEBUG)
Log.d(TAG, "onCreate:");
StringUtil.urlEncodeQueryString("some_url_to_encode");
}
그리고 여기가 모듈에서 snippent : 일반/StringUtil : 출력 로그 캣
import myproject.customer.common.BuildConfig;
public static void urlEncodeQueryString(String urlToEncode) {
if (BuildConfig.DEBUG)
Log.d(TAG, "urlEncodeQueryString: urlToEncode = " + urlToEncode);
String urlQueryEncode = null;
try {
URL url = new URL(urlToEncode);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
urlQueryEncode = uri.toASCIIString();
} catch (MalformedURLException | URISyntaxException e) {
if (BuildConfig.DEBUG)
Log.e(TAG, e.getMessage(), e);
}
}
그리고 여기 :
10-24 18:18:12.407 D/myproject.customer.ui.MainActivity(31646): onCreate:
MainActivity가 로깅 중이지만, StringUtil (모듈에서)이 로깅되지 않습니다. "urlEncodeQueryString: urlToEncode =
"메시지가 표시되지 않습니다.
왜?
P. "if (BuildConfig.DEBUG)
"을 에서 제거하면 StringUtil 메시지가 표시됩니다. 그러나 메시지가 디버그 모드에서만 표시되어야하기 때문에이 검사가 필요합니다.
Log 명령문을 메서드 호출 바로 뒤에 넣고 먼저 호출해야합니다. 어쩌면 "if (BuildConfig.DEBUG)"가 아마도 false로 평가되고 있기 때문에 로깅되지 않습니다. – Sonam
잘못된 프로세스 등에서 logcat을 필터링하지 않도록하십시오. –
(BuildConfig.DEBUG)가 true를 반환하는 경우 "app"에서, (BuildConfig.DEBUG)가 false를 반환하는 경우 "common"모듈에서 확인하십시오. 왜? : – Alexei