我正在尝试使用AppCompat v21在5.0之前的版本中实现“材料设计”,但是当我尝试使用新的“工具栏”时却遇到了空指针异常.我按照该指南实施了http://android-developers.blogspot.com.es/2014/10/appcompat-v21-material-design-for-pre.html.但是我找不到导致NPE的错误.
app.gradle
apply plugin: 'com.androID.application'androID {compileSdkVersion 21buildToolsversion "21.1.2"defaultConfig { applicationID "com.example.alejandrohall.myapplication" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionname "1.0"}buildTypes { release { MinifyEnabled false proguardfiles getDefaultProguardfile('proguard-androID.txt'), 'proguard- rules.pro' }}}dependencIEs {compile filetree(dir: 'libs', include: ['*.jar'])compile 'com.androID.support:appcompat-v7:21.0.3'}
toolbar.xml
<androID.support.v7.Widget.Toolbar xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/my_awesome_toolbar" androID:layout_height="wrap_content" androID:layout_wIDth="match_parent" androID:background="?attr/colorPrimary"/>
styles.xml
<resources><!-- Base application theme. --><style name="Apptheme" parent="theme.AppCompat.light.NoActionbar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/material_blue_grey_950</item> <item name="windowActionModeOverlay">true</item></style></resources>
activity_mail.xml
<relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"xmlns:tools="http://schemas.androID.com/tools" androID:layout_wIDth="match_parent"androID:layout_height="match_parent" tools:context=".MainActivity"><TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:textAppearance="?androID:attr/textAppearanceLarge" androID:text="HolA MUNDO" androID:ID="@+ID/textVIEw" androID:layout_centerVertical="true" androID:layout_centerHorizontal="true" /></relativeLayout>
MainActivity.java
包com.example.alejandrohall.myapplication;
import androID.support.v7.app.ActionBaractivity;import androID.os.Bundle;import androID.support.v7.Widget.Toolbar;public class MainActivity extends ActionBaractivity { @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); Toolbar toolbar = (Toolbar) findVIEwByID(R.ID.my_awesome_toolbar); setSupportActionbar(toolbar); }}
错误
Process: com.example.alejandrohall.myapplication, PID: 6461 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.alejandrohall.myapplication/com.example.alejandrohall.myapplication.MainActivity}: java.lang.NullPointerException at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2198) at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257) at androID.app.ActivityThread.access0(ActivityThread.java:139) at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1210) at androID.os.Handler.dispatchMessage(Handler.java:102) at androID.os.Looper.loop(Looper.java:136) at androID.app.ActivityThread.main(ActivityThread.java:5086) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at androID.support.v7.internal.Widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:95) at androID.support.v7.internal.Widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:88) at androID.support.v7.internal.app.Toolbaractionbar.<init>(Toolbaractionbar.java:84) at androID.support.v7.app.ActionBaractivityDelegateBase.setSupportActionbar(ActionBaractivityDelegateBase.java:175) at androID.support.v7.app.ActionBaractivity.setSupportActionbar(ActionBaractivity.java:92) at com.example.alejandrohall.myapplication.MainActivity.onCreate(MainActivity.java:17) at androID.app.Activity.performCreate(Activity.java:5248) at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110) at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2162) at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2257) at androID.app.ActivityThread.access0(ActivityThread.java:139) at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1210) at androID.os.Handler.dispatchMessage(Handler.java:102) at androID.os.Looper.loop(Looper.java:136) at androID.app.ActivityThread.main(ActivityThread.java:5086) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method)
解决方法:
您的toolbar.xml不包含在activity_main.xml中,因此findVIEwByID(R.ID.my_awesome_toolbar)返回null-您需要将Toolbar直接包括在每个活动的布局中.
总结以上是内存溢出为你收集整理的android-使用AppCompat获取NullPointerException全部内容,希望文章能够帮你解决android-使用AppCompat获取NullPointerException所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)