Android AppWidget Timber没有登录

MZ6*_*MZ6 2 android android-appwidget

我正在尝试从标准日志切换到Timber,以便在将我的应用部署到Google Play时轻松删除日志消息,但它无法正常工作

的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "org.thingdroid"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
}

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.3'
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.jakewharton.timber:timber:3.1.0'
}
Run Code Online (Sandbox Code Playgroud)

ThingDroid.java

package org.thingdroid;

...

import timber.log.Timber;
import static timber.log.Timber.DebugTree;

public class ThingDroid extends AppWidgetProvider {

  @Override
  public void onEnabled(Context context) {
    super.onEnabled(context);

    if (MyBuildConfig.DEBUG) {
      Timber.plant(new DebugTree());
    } else {
      //Timber.plant(new CrashReportingTree());
    }

    Timber.d("ThingDroid.onEnabled");
  }
Run Code Online (Sandbox Code Playgroud)

MyBuildConfig.java

package org.thingdroid;

public class MyBuildConfig {
  public static final boolean DEBUG = true;
}
Run Code Online (Sandbox Code Playgroud)

该应用程序编译好

./gradlew assembleDebug
Run Code Online (Sandbox Code Playgroud)

但是在做的时候

adb logcat | grep -i thing
Run Code Online (Sandbox Code Playgroud)

我的调试语句不存在.

我仍然希望看到调试消息与调试apk但没有发布apk,有什么问题?

MZ6*_*MZ6 6

移动

Timber.plant(new DebugTree());
Run Code Online (Sandbox Code Playgroud)

以onUpdate从onEnabled解决了这个问题,因为onEnabled当时不叫,因为AppWidget已经安装


小智 5

我相信这是因为Timber在您的AppWidgetProvider. 尝试像这样种植树:

Timber.plant(new DebugTree());
Timber.tag("Your_TAG");
Timber.d("...");
Run Code Online (Sandbox Code Playgroud)