Я искал проблему, которую у меня есть, но это очень специфично, и я не смог найти ответ для этого.Android findViewById возвращает значение null после смены compileSdkVersion и buildToolsVersion
У меня есть следующий код в моем приложении:
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) {
...
}
...
}
Я изначально скомпилированы и экспортированы APK с помощью:
compileSdkVersion 21
buildToolsVersion "21.1.2"
и все работает отлично. Но затем я обновил приложение до последней версии:
compileSdkVersion 23
buildToolsVersion "23.0.1"
Теперь вот странная часть. С последней версией в compileSdk и buildTools, если я в режиме отладки, все работает нормально.
Но если я экспортировать файл APK, после его установки в устройстве, когда я запускаю мое приложение, я получаю следующее сообщение об ошибке:
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)
Это очень странная проблема ... У вас, ребята, любая идея, почему это происходит?
очистить проект и построить снова – Amir