testInstrumentationRunner "com.example.theapp.utils.CustomAndroidJUnitRunner"设置为渐变和Run/Debug Configurations -> Android Tests -> MyInstrumentedTest -> General -> Specific instrumentation runner (optional)并延伸AndroidJUnitRunner后:

import android.app.Application;
import android.content.Context;
import android.support.test.runner.AndroidJUnitRunner;

public class CustomAndroidJUnitRunner extends AndroidJUnitRunner {
    @Override
    public Application newApplication(ClassLoader cl, String className, Context context) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
        return super.newApplication(cl, className, context);
    }

    @Override
    public void callApplicationOnCreate(Application app) {
        super.callApplicationOnCreate(app);
    }
}

我在newApplicationcallApplicationOnCreate中设置了bp,看到调用了callApplicationOnCreate,但没有newApplication。有什么问题吗?

最佳答案

我以为newApplication()没有被调用,因为断点没有被命中,但是在调试器有机会附加之前,方法似乎已经被调用了。
如果需要调试newApplication()方法,我建议在runner构造函数中或断点之前的任何时间添加Debug.waitForDebugger()。否则,请使用其他标志来确定是否正在调用该方法(即不依赖于调试器和断点)。

07-25 20:25