0
リンク正常に動作しながら、1つのレイアウトアプリケーション内のいくつかのカスタムビューにnullを返します。それは多分ボディのためにあまりにも多くあったため、回答セクションでfindViewById()、それは他の人のための私のレイアウトビューに
を追加しましたlogcatを https://github.com/google/music-synthesizer-for-android
は私の1つのレイアウトビューに表示され、B:私はちょうど
私はこのプロジェクトからインポートされたすべてのノブウィジェット
... logcatからの誤差を掲載している必要があります電話機で実行したときのut findViewById()は、インポートしたキーボードウィジェットのnullを返します。なぜ私は分からない。 コンストラクタはすべてのウィジェットに対してsuper(context、attrs)を呼び出し、コンテンツビューが設定されます。@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Our base Synthesizer model
//TODO: DSP AND MIDI NOTE ON NOTE OFF
synthesizerModel = new SynthesizerModel();
thread = new SynthesizerAudioOutputThread();
thread.setSynthesizerModel(synthesizerModel);
//The widget returning null
keyboardView = (KeyboardView) findViewById(R.id.kv);
//the other widget returning null
scrollStripView = (ScrollStripView) findViewById(R.id.ssv);
//KNOBS//
knobViews = new KnobView[20];
knobViews[0] = (KnobView) findViewById(R.id.mod_0_0);
knobViews[1] = (KnobView) findViewById(R.id.mod_0_1);
knobViews[2] = (KnobView) findViewById(R.id.mod_0_2);
knobViews[3] = (KnobView) findViewById(R.id.mod_0_3);
knobViews[4] = (KnobView) findViewById(R.id.mod_1_0);
knobViews[5] = (KnobView) findViewById(R.id.mod_1_1);
knobViews[6] = (KnobView) findViewById(R.id.mod_1_2);
knobViews[7] = (KnobView) findViewById(R.id.mod_1_3);
///Other code all the KnobViews are found
レイアウトXML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.csun_comp380_15884.group3.synthesizerapp.MainActivity"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<SeekBar
android:layout_width="200dp"
android:layout_height="30dp"
android:id="@+id/frequency"
android:max="100"
android:layout_row="0"
android:layout_column="0" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_row="0"
android:layout_column="2">
<TextView
android:layout_width="30dp"
android:layout_height="30dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/_0"
android:id="@+id/textView5"
android:textAlignment="center"
android:textSize="24sp" />
<TextView
android:layout_width="30dp"
android:layout_height="30dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/_1"
android:id="@+id/textView6"
android:textAlignment="center"
android:textSize="24sp" />
<TextView
android:layout_width="30dp"
android:layout_height="30dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/_2"
android:id="@+id/textView7"
android:textAlignment="center"
android:textSize="24sp" />
<TextView
android:layout_width="30dp"
android:layout_height="30dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/_3"
android:id="@+id/textView8"
android:textAlignment="center"
android:textSize="24sp" />
</LinearLayout>
<SeekBar
android:layout_width="200dp"
android:layout_height="30dp"
android:id="@+id/master"
android:max="100"
android:layout_row="1"
android:layout_column="0" />
<LinearLayout
android:orientation="vertical"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_row="1"
android:layout_column="1">
<TextView
android:layout_width="30dp"
android:layout_height="30dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="0"
android:id="@+id/textView"
android:textAlignment="center"
android:textSize="24sp" />
<TextView
android:layout_width="30dp"
android:layout_height="30dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="1"
android:id="@+id/textView2"
android:textAlignment="center"
android:textSize="24sp" />
<TextView
android:layout_width="30dp"
android:layout_height="30dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="2"
android:id="@+id/textView3"
android:textAlignment="center"
android:textSize="24sp" />
<TextView
android:layout_width="30dp"
android:layout_height="30dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="3"
android:id="@+id/textView4"
android:textAlignment="center"
android:textSize="24sp" />
</LinearLayout>
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/gridLayout"
android:rowCount="4"
android:columnCount="4"
android:layout_row="1"
android:layout_column="2">
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_0_0"
android:layout_row="0"
android:layout_column="0" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_1_0"
android:layout_row="0"
android:layout_column="1" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_2_0"
android:layout_row="0"
android:layout_column="2" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_3_0"
android:layout_row="0"
android:layout_column="3" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_0_1"
android:layout_row="1"
android:layout_column="0" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_1_1"
android:layout_row="1"
android:layout_column="1" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_2_1"
android:layout_row="1"
android:layout_column="2" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_3_1"
android:layout_row="1"
android:layout_column="3" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_0_2"
android:layout_row="2"
android:layout_column="0" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_1_2"
android:layout_row="2"
android:layout_column="1" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_2_2"
android:layout_row="2"
android:layout_column="2" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_3_2"
android:layout_row="2"
android:layout_column="3" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_0_3"
android:layout_row="3"
android:layout_column="0" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_1_3"
android:layout_row="3"
android:layout_column="1" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_2_3"
android:layout_row="3"
android:layout_column="2" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/mod_3_3"
android:layout_row="3"
android:layout_column="3" />
</GridLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="120dp"
android:layout_height="30dp"
android:layout_row="2"
android:layout_column="2">
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="120dp"
android:layout_height="30dp"
android:layout_row="3"
android:layout_column="2">
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/out_0" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/out_1" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/out_2" />
<com.csun_comp380_15884.group3.synthesizerapp.knob.KnobView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/out_3" />
</LinearLayout>
</GridLayout>
<com.csun_comp380_15884.group3.synthesizerapp.keyboard.ScrollStripView
android:id="@+id/ssv"
android:layout_width="match_parent"
android:layout_height="@dimen/scrollstripheight"/>
<com.csun_comp380_15884.group3.synthesizerapp.keyboard.KeyboardView
android:id="@+id/kv"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
app:octaves="2"
app:first_octave="4"/>
</LinearLayout>
使用しているすべてのIDが正しいことを確認しましたか? (kv、ssv、mod_0_0など) – Shadov
findViewByIdはどこでnullPointerExceptionを検出しましたか?あなたのエラーの起源の正確なポイント。 –
はいすべてのIDが正しいです。 nullポインタ例外を発生させる他の関数を呼び出すことはありません。アプリを実行する際にUIに表示されないプログラムをステップ実行した後、それぞれの変数にヌルを返すことがわかります。 – marvin