我不是Android开发人员并且在Cordova中构建我想使用LeakCanary来检查内存泄漏...(我不知道实际的Android构建环境是如何工作的并且一直在挑选它)
对于安装,LeakCanary州,"在您的build.gradle":
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
}
将上述内容复制并粘贴到 build.gradle(模块:android)后,我收到以下错误:
4:41:15 PM Gradle sync失败:无法找到方法debugCompile() 对于参数[com.squareup.leakcanary:leakcanary-android:1.5] on 对象类型 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler。 有关更多详细信息,请参阅IDE日志(帮助|显示日志)
并在错误日志
中错误:(35,0)无法在类型为org.gradle.api.internal.artifacts.dsl.dependencies的对象上找到参数[com.squareup.leakcanary:leakcanary-android:1.5]的方法debugCompile()。 DefaultDependencyHandler。
有关如何解决此问题的任何想法?我一直在研究,但收效甚微。
感谢!
答案 0 :(得分:0)
随着一些摆弄,我有LeakCanary工作,虽然我不能说它是否完整运行(它运行,并在我的应用程序中提供一些泄漏数据)。
我也不明白为什么它不起作用......
Debug Compile:com.squareup.leakcanary:leakcanary-android:1.5
发布编译:com.squareup.leakcanary:leakcanary-android-no-op:1.5
测试编译:com.squareup.leakcanary:leakcanary-android-no-op:1.5
build.gradle(模块:CordovaLib)现在应该位于最底层:
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
androidTestCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
}
在 CordovaActivity.java :
中public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (LeakCanary.isInAnalyzerProcess(this)) {
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return;
}
LeakCanary.install(getApplication());
...
}
我相信它现在应该有效。
有趣的是,如果我正确安装LeakCanary(3.2 kb)并配备切换屏幕,旋转手机,支持和退出应用程序,看起来Ionic / Cordova的泄漏非常小。