Log.d不在模块中工作?

时间:2017-10-24 15:23:04

标签: android logcat

在Android Studio 2.3.3中。我将新模块(常用)添加为Android库

所以项目结构是:

MyProject
-app
--src
---main
----java
----MainActivity.java
-common
--src
---main
----java
----StringUtil.java

在项目 settings.gradle

include ':app', ':common'

app / build.gradle

dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':common')

    testCompile 'junit:junit:4.12'
}

app / 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");

    }

这里是模块的代表: common / 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);
        }
    }

这里是logcat输出:

10-24 18:18:12.407 D/myproject.customer.ui.MainActivity(31646): onCreate:

正如您所看到的,MainActivity正在记录,但 StringUtil (来自模块)未记录。消息“urlEncodeQueryString: urlToEncode =”未显示。

为什么?

P.S。如果我删除 StringUtil 中的“if (BuildConfig.DEBUG)”,则会显示消息。但是我需要这个检查,因为消息必须只在调试模式下显示。

1 个答案:

答案 0 :(得分:0)

您无需检查BuildConfig.DEBUG

如果您只是将buildType设置为debuggable false,默认情况下为已签名的应用程序设置,则无论其级别如何(信息,调试,警告等)都无法读取日志。 。)

示例(明确设置,不需要):

android {
    buildTypes {
        debug {
            resValue "string", "app_name", "App - Debug"
            applicationIdSuffix '.debug'
            debuggable true
        }
        release {
            debuggable false
        }
    }
}

否则,我的代码中没有任何错误。可能问题出在其他地方。我一直在其他类中使用BuildConfig,它工作正常。