Je travaille sur un projet où je dois démarrer une activité dans une bibliothèque Android à partir de MainActivity dans le module normal d'application.Android - NullPointerEx. causé par getPackageName() de la bibliothèque Android Class
Le MainActivity ressemble à ceci:
public class MainActivity extends ActionBarActivity implements BackendResponse {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// Here I start an AsyncTask
public void tellJoke(View view) {
BackendConnector backendConnector = new BackendConnector();
backendConnector.execute();
}
// And here is the Callback
@Override
public void response(String joke) {
/*
Down here is the problematic line (PresenterActivity is imported)
*/
Intent jokeIntent = new Intent(this, PresenterActivity.class); // <--- line 18
if (joke == null) joke = getString(R.string.emergency_joke);
jokeIntent.putExtra(getString(R.string.intent_key), joke);
startActivity(jokeIntent);
}
Dans le module la dépendance fichier de build.gradle de la 'application' est définie
android {
// compileSdkVersion etc
}
dependency {
compile project(':jokepresenter') // <---
}
Et dans le settings.gradle fichier de l'ensemble du projet de la bibliothèque est incluse
include ':app', ':jokepresenter'
Le Logcat dit comme suit:
FATAL EXCEPTION: main
Process: com.udacity.gradle.builditbigger, PID: 2723
java.lang.NullPointerException:
Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
// ...
at com.udacity.gradle.builditbigger.MainActivity.response(MainActivity.java:18)
at com.udacity.gradle.builditbigger.BackendConnector.onPostExecute(BackendConnector.java:53)
at com.udacity.gradle.builditbigger.BackendConnector.onPostExecute(BackendConnector.java:17)
// ...
Pourriez-vous peut-être ** ** dire pourquoi vous downvote la question? Peut-être que nous pourrions résoudre le problème? –
essayez MainActivity.this ou getContext() au lieu de seulement cela dans l'intention –
MainActivity.this donne la même erreur. Et je ne peux pas appeler _getContext() _, seulement _getBaseContext() _ et _getApplicationContext() _ (et il y a la même erreur aussi) –