2015-09-30 5 views
2

Я искал проблему, которую у меня есть, но это очень специфично, и я не смог найти ответ для этого.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) 

Это очень странная проблема ... У вас, ребята, любая идея, почему это происходит?

+0

очистить проект и построить снова – Amir

ответ

0

Вы должны позвонить setContentView() в свой onCreate(), чтобы настроить пользовательский интерфейс перед программным взаимодействием с любыми его компонентами. Ваши первые 2 строки onCreate() должны быть super.onCreate(savedInstanceState), затем setContentView(R.layout.your_layout). Затем перейдите и настройте onTouchListener.

+0

Да, я делаю это. Я изменил вопрос, чтобы было ясно. –

+1

Возможно, вы также разместите свой контент activity_main.xml, чтобы мы могли видеть ImageView и т. Д. – NoChinDeluxe

 Смежные вопросы

  • Нет связанных вопросов^_^