transport{name}
我在上面看到某个用户在控制台上崩溃了。请在此处查看更多详细信息http://crashes.to/s/c98e1c603ef
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mypackage/com.mypackage.activities.HomeActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.ContentFrameLayout.setDecorPadding(int, int, int, int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2721)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2782)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6286)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.ContentFrameLayout.setDecorPadding(int, int, int, int)' on a null object reference
at android.support.v7.app.AppCompatDelegateImplV9.applyFixedSizeWindow(AppCompatDelegateImplV9.java:537)
at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:331)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at com.watchlivetv.onlineradioapp.activities.HomeActivity.onCreate(HomeActivity.java:99)
at android.app.Activity.performCreate(Activity.java:6778)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1121)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2675)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2782)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6286)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
在这里,我更新了mainActivity代码,其中有viewpager有4个片段。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.mainToolBar);
setSupportActionBar(toolbar);
actionBar = toolbar.findViewById(R.id.zalunuActionBar);
viewPager = findViewById(R.id.pager);
actionBar.setTabListener(this);
viewPager.setAdapter(new MainPagerAdapter(getFragmentManager()));
viewPager.setOffscreenPageLimit(viewPager.getChildCount());
viewPager.addOnPageChangeListener(this);
}
这是R.layout.activity_main
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false"
tools:openDrawer="end">
<include layout="@layout/activity_main_content" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end"
android:fitsSystemWindows="true">
<include layout="@layout/drawer" />
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
我还在我的应用程序中使用了Appodeal和Admob广告。该SDK的初始化也在此活动中完成。
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/mainToolBar"
style="@style/toolbar"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp">
<include layout="@layout/activity_main_custom_action_bar" />
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/footerLayout"
android:layout_below="@+id/appBarLayout" />
<LinearLayout
android:id="@+id/footerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/bannerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:3)
错误是由于支持库之间的冲突。 您使用了support.v4库和support.v7库。请只使用一个支持库,然后解决问题。
答案 1 :(得分:2)
我调试了你的错误。根据我的调试,它只会在一个条件下抛出。
当你在AppCompatDelegateImplV9.java:489
获得null时final ViewGroup windowContentView = (ViewGroup) mWindow.findViewById(android.R.id.content);
所以这行永远不会被称为AppCompatDelegateImplV9.java:502
contentView.setId(android.R.id.content);
内部会导致您的错误。你将在AppCompatDelegateImplV9.java:530获得cfl null
ContentFrameLayout cfl = (ContentFrameLayout) mSubDecor.findViewById(android.R.id.content);
并在AppCompatDelegateImplV9.java:537
中抛出错误cfl.setDecorPadding(windowDecor.getPaddingLeft(),
windowDecor.getPaddingTop(), windowDecor.getPaddingRight(),
windowDecor.getPaddingBottom());
mWindow由android在内部设置,活动init是PhoneWindow的对象
但是如果有人试图在任何其他地方使用你的应用程序,那么移动意味着(在虚拟机中或运行一些脚本来破解它)那么它可能会出现这个问题。
因此,您应该检查正在发生的设备,并且也可以在google认证的操作系统上运行。
答案 2 :(得分:1)
我怀疑ContentFrameLayout
是供内部使用的。 Looking at its source它似乎没有做任何事情,整个类被标记为@hide
,这可能是你得到错误的原因(假设你已经在你的应用程序构建gradle中添加了依赖项)。虽然我确信这个类对appcompat库有一些内部用途。对于应用程序开发人员,我们应该坚持使用常规FrameLayout
。
答案 3 :(得分:0)
我有同样的错误。我认为也许android:fitsSystemWindows="false"
导致了此错误。我已将其更改为android:fitsSystemWindows="true"
。似乎有所改善。你可以试试看。