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文件时,我可以看到活动在那里。

在这里输入图像说明

怎么了?

Solutions Collecting From Web of "DisplayLeakActivity不存在"

当我尝试在我的应用程序中启用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); } }