J'ai cherché sur le problème que j'ai, mais il est très spécifique et je n'ai pas pu trouver la réponse pour cela.Android findViewById retournant null après avoir changé compileSdkVersion et buildToolsVersion
J'ai le code suivant dans mon application:
class MainActivity extends Activity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
mStatusImageView = (ImageView) findViewById(R.id.imageViewStatus);
...
mStatusImageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
...
}
...
}
Au départ, je Compilé et en utilisant APK exporté:
compileSdkVersion 21
buildToolsVersion "21.1.2"
et tout fonctionne très bien. Mais alors j'ai mis à jour mon application à la dernière version:
compileSdkVersion 23
buildToolsVersion "23.0.1"
Maintenant, voici la partie étrange. Avec la dernière version de compileSdk et buildTools, si je suis en mode débogage, tout va bien.
Mais si j'exporter le fichier APK, après l'avoir installé dans mon appareil, quand je lance mon application, je reçois l'erreur suivante:
java.lang.RuntimeException: Unable to start activity ComponentInfo{x.x.x/x.x.x.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setOnTouchListener(android.view.View$OnTouchListener)' on a null object reference : at x.x.x.MainActivity.onCreate(Unknown Source)
Ceci est un problème très étrange ... Avez-vous les gars avez une idée de pourquoi cela se passe?
effacer le projet et construire à nouveau – Amir