Как быстро визуализация, это то, что мой макет выглядит следующим образом:Установка идентификатор для корневого зрения врежется андроид приложением
<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);
}
...
}
Какой идентификатор вы установили? – jbarat
@jbarat Первоначально этот 'android: id =" @ + id/main_root_view "', но после первого сбоя я попробовал 'android: id =" @ + id/blahblah "' и все равно получил ту же ошибку – smac89
Где вы установить этот макет? Как найти идентификатор представления для root? Можете ли вы показать журнал аварий? –