2016-07-06 1 views
0

がクラッシュし、これが私のレイアウトは次のようになります。は、ルートビューのIDを設定すると、すばやく視覚化したようアンドロイドアプリ

<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:id="@+id/main_root_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="me.smac89.sample.MainActivity"> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/main_content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="@dimen/cards_margin" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
</android.support.design.widget.CoordinatorLayout> 

私はコーディネーターのレイアウトのためのID(android:id="")を設定すると、時にアプリがクラッシュが起動しますただし、idを削除すると正常に実行されます。何が起こっている?ルートビューのIDを設定するとアプリがクラッシュするのはなぜですか?

このfindViewById(android.R.id.content)を使用しているユーザーがルートビューを取得するのを見たことがあります。これがrootviewを取得する唯一の方法ですか?


クラッシュログ

7月6日18:30:42.253 9385から9385/me.smac89.deloittepixel E/AndroidRuntime: 致命的な例外:メイン プロセス:me.smac89。 deloittepixel、PID:9385 java.lang.RuntimeException:アクティビティを開始できません ComponentInfo {me.smac89.sample/me.smac89.sample.MainActivity}: java.lang.ClassCastException: android.support.design.wid get.CoordinatorLayoutはアンドロイドでandroid.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) で android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) でandroid.app.Activity にキャストすることはできませんアンドロイドでandroid.os.Handler.dispatchMessage(Handler.java:102) で android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) で.app.ActivityThread.-wrap11(ActivityThread.java) .os.Looper.loop(Looper.java:148) android.app.ActivityThread.main(ActivityThread.java:5417) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)com.android.internal.os.ZygoteInitで でjava.lang.reflect.Method.invoke(ネイティブメソッド) で。 java.lang.ClassCastExceptionが:によって引き起こさメイン(ZygoteInit.java:616)は android.support.design.widget.CoordinatorLayoutがbutterknife.internal.Finder $ 2.getContextでandroid.app.Activity にキャストすることはできません(ファインダー.java:34) at butterknife.internal.Finder.getResourceEntryName(Finder.java:131) at butterknife.internal.Finder.findRequiredViewAsType(Finder.java:86) でme.smac89.sample.MainActivity $$ ViewBinder $ InnerUnbinder(MainActivity $$ ViewBinder.java:32)。 でme.smac89.sample.MainActivity $$ ViewBinder.bind(MainActivity $$ ViewBinder.java:20) me.smac89.sample.MainActivity.onCreateでbutterknife.ButterKnife.bind(ButterKnife.java:122)で : me.smac89.sample.MainActivity $$ ViewBinder.bind(17 MainActivity $$ ViewBinder.java)で(MainActivity.java:50) android.app.Activity.performCreate(Activity.java:6237) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) : android.app.ActivityThread。 android.app.ActivityThread $ Hでandroid.app.ActivityThread.-wrap11(ActivityThread.java)でperformLaunchActivity(ActivityThread.java:2369) でandroid.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) .handleMessage(ActivityThread.java:1344) とandroid.os.Handler.dispatchMessage(Handler.java:102) とandroid.os.Looper.loop(Looper.java:148) とandroid.app.ActivityThread.main (ActivityThread.java:5417) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.i com.android.internal.os.ZygoteInit.mainでnternal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) (ZygoteInit.java:616)

MainActivity.java

public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener { 

    public static final String TAG = MainActivity.class.getName(); 

    @BindView(R.id.main_content) 
    ViewPager viewPager; 

    @BindView(R.id.main_tab_spinner) 
    Spinner spinner; 

    @BindView(R.id.main_tab) 
    TabLayout tabLayout; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     setKeyAndSecret(); 
     ButterKnife.bind(this); 
     spinner.setAdapter(new SpinnerDummyAdapter(this)); 

     initTabs(); 
     viewPager.addOnPageChangeListener(this); 
    } 
    ... 
} 
+0

どのようなIDを設定していますか? – jbarat

+0

@jbarat最初はこのアンドロイド:id = "@ + id/main_root_view"となりましたが、最初のクラッシュの後、私は 'android:id =" @ + id/blahblah "'を試しましたが、まだ同じエラーが発生しました – smac89

+0

どこですかそのレイアウトを設定しますか?あなたはどのようにしてrootのビューIDを見つけますか? クラッシュログを表示できますか? –

答えて

0

私は同様の問題があり、それを解決しました:ビルド>クリーンプロジェクト

関連する問題