Ich arbeite an einem Projekt, wo ich eine Aktivität in einer Android-Bibliothek von der MainActivity in der normalen 'App' Modul starten muss.Android - NullPointerEx. verursacht durch getPackageName() aus Android-Bibliothek Klasse
Die MainActivity sieht wie folgt aus:
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);
}
Im build.gradle Datei aus dem 'App' Modul die Abhängigkeit
android {
// compileSdkVersion etc
}
dependency {
compile project(':jokepresenter') // <---
}
gesetzt ist und in der settings.gradle Datei aus dem gesamten Projekt ist die Bibliothek enthalten
include ':app', ':jokepresenter'
Die Logcat sagt wie folgt:
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)
// ...
Könnten Sie vielleicht war natürlich ** sagen **, warum Sie die Frage downvote? Vielleicht könnten wir das Problem lösen? –
versuchen MainActivity.this oder getContext() statt nur in Absicht –
MainActivity.this gibt denselben Fehler. Und ich kann nicht _getContext() _, nur _getBaseContext() _ und _getApplicationContext() _ aufrufen (und es gibt auch denselben Fehler) –