2016-07-06 1 views
0

Как быстро визуализация, это то, что мой макет выглядит следующим образом:Установка идентификатор для корневого зрения врежется андроид приложением

<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> 

Когда я установил идентификатор (android:id="") для компоновки координатора, сбой приложения при запуске , однако удаление идентификатора позволяет ему работать нормально. Что происходит? Почему установка идентификатора для корневого представления приводит к сбою приложения?

Я видел людей, использующих этот findViewById(android.R.id.content), чтобы получить представление о корне; это единственный способ получить rootview?


журнал Краш

07-06 18: 30: 42,253 9385-9385/me.smac89.deloittepixel Е/AndroidRuntime: неустранимым: Основной процесса: me.smac89. deloittepixel, ПИД: 9385 java.lang.RuntimeException: Невозможно запустить активность ComponentInfo {me.smac89.sample/me.smac89.sample.MainActivity}: java.lang.ClassCastException: android.support.design.wid get.CoordinatorLayout не может быть приведен к android.app.Activity на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2416) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) на андроид .app.ActivityThread.-wrap11 (ActivityThread.java) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) в android.os.Handler.dispatchMessage (Handler.java:102) на андроид .os.Looper.loop (Looper.java:148) at android.app.ActivityThread.main (ActivityThread.java:5417)на java.lang.reflect.Method.invoke (Native Method) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) в com.android.internal.os.ZygoteInit. основной (ZygoteInit.java:616) Вызванный: java.lang.ClassCastException: android.support.design.widget.CoordinatorLayout не может быть приведен к android.app.Activity в butterknife.internal.Finder $ 2.getContext (Finder .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) at me.smac89.sample.MainActivity $$ ViewBinder.bind (MainActivity $$ ViewBinder.java: 20) в me.smac89.sample.MainActivity $$ ViewBinder.bind (MainActivity $$ ViewBinder.java: 17) в butterknife.ButterKnife.bind (ButterKnife.java:122) в me.smac89.sample.MainActivity.onCreate (MainActivity.java:50) на android.app.Activity.performCreate (Activity.java:6237) на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1107) на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2369) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) на android.app.ActivityThread.-wrap11 (ActivityThread.java) на android.app.ActivityThread $ H .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) по адресу java.lang.reflect.Method.invoke (родной метод) по адресу com.android.i nternal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) в com.android.internal.os.ZygoteInit.main (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

Какой идентификатор вы установили? – jbarat

+0

@jbarat Первоначально этот 'android: id =" @ + id/main_root_view "', но после первого сбоя я попробовал 'android: id =" @ + id/blahblah "' и все равно получил ту же ошибку – smac89

+0

Где вы установить этот макет? Как найти идентификатор представления для root? Можете ли вы показать журнал аварий? –

ответ

0

У меня была аналогичная проблема и она была решена с помощью: Build> Clean Project

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