2017-01-22 1 views
0

Я не разработчик Android и не строю в Кордове. Я бы хотел проверить утечку памяти с помощью LeakCanary ... (я понятия не имею, как на самом деле Android строительная среда работает и подбирала это).LeakCanary Dependency with Cordova - Не удалось найти метод debugCompile()

Для установки, 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 (Модуль: андроид):

4:41:15 PM Gradle sync failed: Could not find method debugCompile() for arguments [com.squareup.leakcanary:leakcanary-android:1.5] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. Consult IDE log for more details (Help | Show Log)

и в журнал ошибок

Error:(35, 0) Could not find method debugCompile() for arguments [com.squareup.leakcanary:leakcanary-android:1.5] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

Любые идеи о том, как исправить это? Я занимаюсь исследованиями с ограниченным успехом.

Thank!

ответ

0

С некоторыми возиться, у меня работает LeakCanary, хотя я не могу говорить о том, работает ли он в полном объеме (он работает и предоставляет некоторые данные утечки в моем приложении).

Я тоже не понимаю, почему он не работает ...

  • Использование файла> Структура проекта> Модули: CordovaLib (не «андроид»)> вкладка Зависимости
  • Добавьте следующее :

Debug Compile: com.squareup.leakcanary:leakcanary-android:1.5

Release Compile: com.squareup.leakcanary:leakcanary-android-no-op:1.5

Test Compile: 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()); 
    ... 
    } 
    

Я считаю, что это должно работать.

Интересно отметить, что похоже, что Ionic/Cordova имеет очень минимальную утечку, если я правильно установил LeakCanary (3,2 kb) с экранами переключения, вращающимся телефоном, поддержкой и выходом из приложения.

Смежные вопросы