Added LeakCanary (1.3) để ứng dụng của tôi:NullPointerException từ LeakCanary khi chạy Robolectric kiểm tra
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
LeakCanary.install(this);
Khi tôi chạy thử nghiệm bộ Robolectric cho các ứng dụng của tôi, tôi nhận được một NullPointerException trong LeakCanary.
Caused by: java.lang.NullPointerException
at com.squareup.leakcanary.LeakCanary.isInServiceProcess(LeakCanary.java:165)
at com.squareup.leakcanary.LeakCanary.isInAnalyzerProcess(LeakCanary.java:141)
at com.squareup.leakcanary.LeakCanary.install(LeakCanary.java:52)
at com.squareup.leakcanary.LeakCanary.install(LeakCanary.java:43)
at com.package.application.MyApplication.onCreate(MyApplication.java:50)
at org.robolectric.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.java:131)
at org.robolectric.RobolectricTestRunner.setUpApplicationState(RobolectricTestRunner.java:431)
at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:224)
Tôi nói thêm rằng Im sử dụng Crashlytics chỉ ra rằng nó (và các phương pháp khác cũng) nhận được ứng dụng tương tự, nhưng không ném bất kỳ trường hợp ngoại lệ.
Bạn không chắc chắn điều này có nên ở đây hoặc trên các vấn đề GitHub cho LeakCanary hay không. Bất kỳ ai khác gặp sự cố này?
Hãy xem mã nguồn của LeakCanary.java, Dường như HeapAnalyzerService không chạy khi thực hiện kiểm tra. – WenChao
Ghi đè ứng dụng của bạn trong các thử nghiệm và ngăn chặn Crashlitics và LeakCanary initialisation. Thông tin thêm tại đây (http://robolectric.org/custom-test-runner/) –
Cảm ơn! Tôi đã đi với tùy chọn lớp ứng dụng tùy chỉnh. – erafn