0

Я использую support.v7.widget.Toolbar, и он не может найти панель инструментов по R.id.xyzname findviewbyid. Обе панели инструментов и панели инструментов возвращают нуль. Таким образом, код падает с NullPointer по адресу setSupportActionBar (панель инструментов).NullPointer при доступе к панели инструментов с findviewbyid android.support.v7.widget.Toolbar

То же приложение отлично работает при тестировании в устройстве с версией 23; Код падает с NullPointer при тестировании с помощью устройства с версией 16.

Вот моя деятельность

class classActivity extends AppCompatActivity { 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     int currentApiVersion = Build.VERSION.SDK_INT; 

     mOpenHelper = new IncidentOpenHelper(getApplicationContext()); 


     setContentView(R.layout.login); 

     AppBarLayout appBarLayout = (AppBarLayout) View.inflate(this, R.layout.app_toolbar, null); 
     // [the above code helped me solve the issue] 

     android.support.v7.widget.Toolbar toolbars = (android.support.v7.widget.Toolbar) appBarLayout.findViewById(R.id.app_bar_toolbar); 



     setSupportActionBar(toolbars); 


     client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); 
    } 
} 

Вот мой layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 

    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="session_management.LoginActivity"> 


    <include 
     layout="@layout/app_toolbar"/> 

<!-- 
    <android.support.design.widget.AppBarLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:id="@+id/app_bar_toolbar" 
      android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

--> 

    <LinearLayout 


    </Linear layout> 





</android.support.design.widget.CoordinatorLayout> 

здесь мои зависимости

compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:multidex:1.0.1' 
compile 'com.android.support:appcompat-v7:23.1.1' 
compile 'com.android.support:design:23.1.1' 
compile 'com.google.http-client:google-http-client-jackson2:1.20.0' 
compile 'com.google.api-client:google-api-client-android:1.20.0' 
compile 'com.google.code.gson:gson:2.4' 
compile project('libraries:volley') 
/*                                                                                          androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1' 
                                                                                               */ 
compile 'com.google.android.gms:play-services-appindexing:8.4.0' 
compile project(':cloudendpoint') 

вот мой app_toolbar.xml

<?xml version="1.0" encoding="utf-8"?> 

<android.support.design.widget.AppBarLayout android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:theme="@style/AppTheme.AppBarOverlay" 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/app_bar_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    app:popupTheme="@style/AppTheme.PopupOverlay" /> 

</android.support.design.widget.AppBarLayout> 
+0

Я боролся с этим в течение последних двух дней. Ищите SO и прочитайте также Документы Google. Любые указания или указатели приветствуются. –

+0

Не понимаю ни слова. Не могли бы вы объяснить, почему голос? –

+0

Наконец-то решила его после раздувания панели инструментов. android.support.v7.widget.Toolbar toolbars = (android.support.v7.widget.Toolbar) layout1.findViewById (R.id.app_bar_toolbar); Я обновил свой код. –

ответ

1

Использование v7 инструментов поддержки для поддержки нижних устройств. Нравится

android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.app_bar_toolbar); 
+0

Спасибо Faisi. Только что вышел из моего ноутбука. Будет проверять и возвращаться к вам. –

+0

уверен. Надеюсь, это сработает для вас. –

+0

У меня все еще возникают те же проблемы. Я обновил свой код и вопрос, чтобы включить android.support.v7.widget.Toolbar. См. Выше. –