Исключение нулевого указателя при выполнении подключенного теста в Android studio

Я пытаюсь выполнить подключенный тест для P4, однако я получаю «ошибку исключения нулевого указателя» для P4

Сообщение об ошибке:

:00:02 PM null
java.lang.NullPointerException
at com.android.ddmlib.Client.read(Client.java:692)
at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:304)
at com.android.ddmlib.MonitorThread.run(MonitorThread.java:256)

Это стандартный тест, проверяющий непустую строку в асинхронной задаче

Тестовая функция:

public void runCloudModuleTest() {
    String joke = null;
    JokesAsyncTask jokesAsyncTask = new JokesAsyncTask(getContext(), null);
    jokesAsyncTask.execute();
    try {
        joke = jokesAsyncTask.get();
        Log.d("CloudModuleTest", "Retrieved a non-empty string successfully: " + joke);
    } catch (Exception e) {
        e.printStackTrace();
    }
    assertNotNull(joke);
}

Может ли кто-то помочь мне понять, в чем проблема?

AsyncTask: асинхронная задача извлекает данные из Google cloud engine

public class JokesAsyncTask расширяет AsyncTask, Void, String> {

private static JokeApi myApiService = null;
private Context mContext;
private String mResult;
private ProgressBar mProgressBar;

public JokesAsyncTask(Context context, ProgressBar progressBar) {
    this.mContext = context;
    this.mProgressBar = progressBar;
}

@Override
protected void onPreExecute() {
    super.onPreExecute();
    if (mProgressBar != null) {
        mProgressBar.setVisibility(View.VISIBLE);
    }
}

@Override
protected String doInBackground(Pair<Context, String>... pairs) {
    if (myApiService == null) {
        JokeApi.Builder builder = new JokeApi.Builder(AndroidHttp.newCompatibleTransport(),
                new AndroidJsonFactory(), null)
                .setRootUrl("https://testandroiddevelopment.appspot.com/_ah/api/");
        myApiService = builder.build();
    }
    try {
        return myApiService.sendJoke(new JokeBean()).execute().getJoke();
    } catch (IOException e) {
        return e.getMessage();
    }
}

@Override
protected void onPostExecute(String result) {
    super.onPostExecute(result);

    if (mProgressBar != null) {
        mProgressBar.setVisibility(View.GONE);
    }
    mResult = result;
    startJokeDisplayActivity();
}

private void startJokeDisplayActivity() {

    Intent intent = new Intent(mContext, JokeViewActivity.class);
    intent.putExtra(JokeViewActivity.JOKE_KEY, mResult);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    mContext.startActivity(intent);
}

}

Я сослался на переменную, и это не проблема из-за приведенного ниже сообщения, однако я исследовал и, наконец, очистил и перестроил проект, который помог решить эту проблему

1 ответ

  1. Я сослался на переменную, и это не проблема из-за post @AxelH, однако я исследовал и, наконец, очистил и перестроил проект, который помог решить эту проблему