Nexus 7 タブレットでアプリケーションを実行しているときに、nexus 4 でも他のデバイスで動作するときに問題が発生します。
JSON応答からの要素が入力されたスピナーを配置しようとしました(Asynctaskを介してサーバーからこの応答を取得します)が、Nexus 7を除いてすべてがうまく機能します。管理者アカウントにアクセスできないため、Nexus 7 でアプリをデバッグできません。Nexus 4で同じ問題をデバッグしているときに、同じコードがGalaxy S2で機能し、メニュー項目を次のように変更した後、アクションバーのスピナーがfindById()メソッドによって見つからないことがわかりました。
<item
android:id="@+id/menuCategory"
android:actionLayout="@layout/action_categories"
android:actionViewClass="android.widget.Spinner"
android:showAsAction="always"
android:title="@string/collection"/>
<?xml version="1.0" encoding="utf-8"?>
<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menuCategorySpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
Nexus 4で作業を開始しましたが、Nexus 7ではまだ壊れています。コードの関連部分は次のとおりです。
//First do this to initialise elements of the menu
invalidateOptionsMenu();
//Find the spinner by id
spinner = (Spinner) findViewById(R.id.menuCategorySpinner);
//Initilise adapter
final ArrayAdapter<Category> Adapter = new ArrayAdapter<Category>(this, android.R.layout.simple_dropdown_item_1line, result);
//Set adapter
spinner.setAdapter(Adapter);
以前にidで見つからなかった場合、スピナーがnullになる可能性があるため、問題は最後の行にあると思いますが、Nexus 7でのみ見つからない理由がわかりません。何が起こっているのか知っていますか?