DisplayLeakActivity不存在

一段时间以来,我有与LeakCanary(我认为自Android Studio 2.2,但不知道)的问题,

我添加了这个依赖关系

dependencies { debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta2' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2' testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2' } 

当我点击Android Studio中的播放button时,出现以下错误消息:

 $ adb shell am start -n "com.example.debug/com.squareup.leakcanary.internal.DisplayLeakActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Error while executing: am start -n "com.example.debug/com.squareup.leakcanary.internal.DisplayLeakActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.debug/com.squareup.leakcanary.internal.DisplayLeakActivity } Error type 3 Error: Activity class {com.example.debug/com.squareup.leakcanary.internal.DisplayLeakActivity} does not exist. Error while Launching activity 

但是当我用ClassyShark打开apk文件时,我可以看到活动在那里。

在这里输入图像说明

怎么了?

  • Unity项目作为Gradle中的依赖项
  • 如何编辑在Android Studio中使用Gradle导入的库的代码?
  • 如何在android工作室中的工具栏中心图标
  • 如何降级到较旧版本的Gradle
  • commons-logging定义的类与Android Studio Update之后由Android提供的类发生冲突
  • 为什么我的新签名apk中的指纹不同?
  • Android Studio的“预期资源types”检查?
  • 将ViewPagerIndicator添加到Android Studio
  • 当我尝试在我的应用程序中启用LeakCanary时,发生这种情况。

    不知何故,我在我的清单中定义:

     <application android:name="sg.swiftninja.DriverApplication" android:allowBackup="false" tools:node="replace" // <-- THIS android:label="@string/app_name" android:theme="@style/AppTheme"> 

    我认为问题是在我的应用程序标签中的tools:node="replace"

    我通过replace来解决这个问题

     tools:node="replace" 

     tools:replace="android:allowBackup" // or whatever nodes like this tools:replace="icon, label" 

    或者,如果你不需要,就直接删除这一行。 希望这可以帮助!

    注意这一点

     <activity android:theme="@style/leak_canary_LeakCanary.Base" android:name=".internal.DisplayLeakActivity" android:enabled="false" android:taskAffinity="com.squareup.leakcanary" > </activity> 

    问题是DisplayLeakActivity的android:enable默认为false。 您需要在Application类的onCreate()方法中调用LeakCanary.install(this) 。 此示例代码来自LeakCanary文档

     public class ExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); LeakCanary.install(this); } }