Cordova的LeakCanary依赖 - 无法找到方法debugCompile()

时间:2017-01-22 00:07:56

标签: android cordova maven gradle memory-leaks

我不是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。

有关如何解决此问题的任何想法?我一直在研究,但收效甚微。

感谢!

1 个答案:

答案 0 :(得分:0)

随着一些摆弄,我有LeakCanary工作,虽然我不能说它是否完整运行(它运行,并在我的应用程序中提供一些泄漏数据)。

我也不明白为什么它不起作用......

  • 使用文件>项目结构>模块:CordovaLib(不是“android”)> 依赖选项卡
  • 添加以下内容:
  

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的泄漏非常小。