GVKun编程网logo

布尔值的java.lang.NullPointerException(布尔值的英文)

6

本文将分享布尔值的java.lang.NullPointerException的详细内容,并且还将对布尔值的英文进行详尽解释,此外,我们还将为大家带来关于Androidjava.lang.Runtim

本文将分享布尔值的java.lang.NullPointerException的详细内容,并且还将对布尔值的英文进行详尽解释,此外,我们还将为大家带来关于Android java.lang.RuntimeException:无法实例化活动ComponentInfo … java.lang.NullPointerException、android – java.lang.RuntimeException无法实例化服务:java.lang.NullPointerException、Android 编译错误 [kapt] An exception occurred: java.lang.NullPointerException、Android----java.lang.NullPointerException:---java.lang.NullPointerException:的相关知识,希望对你有所帮助。

本文目录一览:

布尔值的java.lang.NullPointerException(布尔值的英文)

布尔值的java.lang.NullPointerException(布尔值的英文)

我根据另一个问题编写了一个非常简单的代码,它是:

丢给我一个错误

java.lang.NullPointerException第5和17行

我不知道我在做什么错。

 public class Main {    public static String bool(Boolean param){        if(param == true){    (line 5)            return "a";        }else if(param == false){            return "b";        }        return "c";    }    public static void main(String[] args){        System.out.println(bool(true));        System.out.println(bool(null)); (line 17)        System.out.println(bool(false));    }}

答案1

小编典典

null无法自动拆箱为原始boolean值,当您尝试与进行比较时会发生这种情况true。在

param == true

类型trueboolean,因此左侧操作数也必须为boolean。您正在传入Boolean,这是一个对象,但可以自动拆箱到boolean

因此,这相当于

param.booleanValue() == true

显然,如果paramnull,则以上抛出NullPointerException

为了避免自动拆箱的隐藏陷阱,您可以改用以下Boolean对象:

if (Boolean.TRUE.equals(param))  return "a";if (Boolean.FALSE.equals(param))  return "b";return "c";

Android java.lang.RuntimeException:无法实例化活动ComponentInfo … java.lang.NullPointerException

Android java.lang.RuntimeException:无法实例化活动ComponentInfo … java.lang.NullPointerException

出于某种原因,每次尝试启动我的应用程序时,我都会出现以下错误:

Unable to instantiate activity ComponentInfo{com.example.lifeahead/com.example.lifeahead.MainActivity}:java.lang.NullPointerException

我检查了清单文件,并添加了所有活动.

我启动应用程序时使用的唯一方法是:

private void logIn(){
    Button logIn = (Button) findViewById(R.id.login);
    logIn.setonClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // Todo Auto-generated method stub
            Intent loginIntent = new Intent(MainActivity.this, HomeActivity.class);
            loginIntent.putExtra("cmUN", cmUN);
            loginIntent.putExtra("cmPW", cmPW);
            startActivity(loginIntent);
        }
    });
}

这是onCreate:

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

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }

    logIn();
}

完整日志:

Ë

/AndroidRuntime(1607): FATAL EXCEPTION: main
E/AndroidRuntime(1607): Process: com.example.lifeahead, PID: 1607
E/AndroidRuntime(1607): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.lifeahead/com.example.lifeahead.MainActivity}: java.lang.NullPointerException
E/AndroidRuntime(1607):     at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2121)
E/AndroidRuntime(1607):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
E/AndroidRuntime(1607):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
E/AndroidRuntime(1607):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
E/AndroidRuntime(1607):     at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(1607):     at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(1607):     at android.app.ActivityThread.main(ActivityThread.java:5017)
E/AndroidRuntime(1607):     at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1607):     at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(1607):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
E/AndroidRuntime(1607):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
E/AndroidRuntime(1607):     at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(1607): Caused by: java.lang.NullPointerException
E/AndroidRuntime(1607):     at android.app.Activity.findViewById(Activity.java:1884)
E/AndroidRuntime(1607):     at com.example.lifeahead.MainActivity.<init>(MainActivity.java:22)
E/AndroidRuntime(1607):     at java.lang.class.newInstanceImpl(Native Method)
E/AndroidRuntime(1607):     at java.lang.class.newInstance(Class.java:1208)
E/AndroidRuntime(1607):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
E/AndroidRuntime(1607):     at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:2112)
E/AndroidRuntime(1607):     ... 11 more

我感谢所有帮助!

解决方法:

stacktrace告诉你

  Button logIn = (Button) findViewById(R.id.login);

findViewById返回的对象为null,因为您拥有的唯一方法是logIn(). findViewById返回null的唯一原因是因为您正在查找不属于当前活动的视图层次结构的视图

android – java.lang.RuntimeException无法实例化服务:java.lang.NullPointerException

android – java.lang.RuntimeException无法实例化服务:java.lang.NullPointerException

我试图创建一个启动服务的活动(在新线程中).它包含一个带有两个editText和一个名为Send的按钮的布局.关键是当我执行MainActivity时,它会抛出:
06-15 22:32:13.312: E/AndroidRuntime(643): FATAL EXCEPTION: main
06-15 22:32:13.312: E/AndroidRuntime(643): java.lang.RuntimeException: Unable to instantiate service hikoki.services.NotificationsService: java.lang.NullPointerException
06-15 22:32:13.312: E/AndroidRuntime(643):  at android.app.ActivityThread.handleCreateService(ActivityThread.java:2237)
06-15 22:32:13.312: E/AndroidRuntime(643):  at android.app.ActivityThread.access$1600(ActivityThread.java:123)
06-15 22:32:13.312: E/AndroidRuntime(643):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)
06-15 22:32:13.312: E/AndroidRuntime(643):  at android.os.Handler.dispatchMessage(Handler.java:99)
06-15 22:32:13.312: E/AndroidRuntime(643):  at android.os.Looper.loop(Looper.java:137)
06-15 22:32:13.312: E/AndroidRuntime(643):  at android.app.ActivityThread.main(ActivityThread.java:4424)
06-15 22:32:13.312: E/AndroidRuntime(643):  at java.lang.reflect.Method.invokeNative(Native Method)
06-15 22:32:13.312: E/AndroidRuntime(643):  at java.lang.reflect.Method.invoke(Method.java:511)
06-15 22:32:13.312: E/AndroidRuntime(643):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-15 22:32:13.312: E/AndroidRuntime(643):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-15 22:32:13.312: E/AndroidRuntime(643):  at dalvik.system.NativeStart.main(Native Method)
06-15 22:32:13.312: E/AndroidRuntime(643): Caused by: java.lang.NullPointerException
06-15 22:32:13.312: E/AndroidRuntime(643):  at android.content.Contextwrapper.getSystemService(Contextwrapper.java:386)
06-15 22:32:13.312: E/AndroidRuntime(643):  at hikoki.services.NotificationsService.<init>(NotificationsService.java:35)
06-15 22:32:13.312: E/AndroidRuntime(643):  at java.lang.class.newInstanceImpl(Native Method)
06-15 22:32:13.312: E/AndroidRuntime(643):  at java.lang.class.newInstance(Class.java:1319)
06-15 22:32:13.312: E/AndroidRuntime(643):  at android.app.ActivityThread.handleCreateService(ActivityThread.java:2234)
06-15 22:32:13.312: E/AndroidRuntime(643):  ... 10 more

主要活动的代码是这样的:

public class MainActivity extends Activity {
    private String TAG = getClass().getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Thread t= new Thread(){
            public void run(){
                Intent intent=new Intent(getContext(),NotificationsService.class);
                //Intent intent=new Intent("hikoki.services.NotificationsService");
                Log.d(TAG,"sending notificationsService");
                startService(intent);
            }
        };
        t.start();
    }

    protected Context getContext() {    
        return this;
    }
}

NotificationsService代码在这里:

public class NotificationsService extends IntentService{
    private static  int TIME_INTERVAL_MILIS=5000;
    private static final int REFRESH=10;
    private  notificationmanager noteManager;
    private static List<FlightStatusNote> flights= new ArrayList<FlightStatusNote>();

    public NotificationsService(){
        super("NotificationsService"); 
        noteManager= notificationmanager)getSystemService(Context.NOTIFICATION_SERVICE)
    }
}

AndroidManifest是这样的:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="hikoki.services"
    android:versionCode="1"
    android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="hikoki.services.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <service android:name=".FlightStatusService"></service>
    <service android:enabled="true" android:name=".NotificationsService"></service>
</application>

</manifest>

解决方法

您不能从初始化程序(如您原来的那样)或构造函数(就像您现在一样)调用getSystemService().请覆盖onCreate(),并在那里调用getSystemService().

基本上,直到调用onCreate()(或者更准确地说,直到你从onCreate()调用super.onCreate()之后),服务上的继承方法还没有准备好供您使用.

Android 编译错误 [kapt] An exception occurred: java.lang.NullPointerException

Android 编译错误 [kapt] An exception occurred: java.lang.NullPointerException

原文链接:https://blog.csdn.net/fomin_zhu/article/details/86687473

去掉app的build.gradle中的 kapt "com.android.databinding:compiler:3.1.4"

今天在看MVVM架构的demo时,准备跑起来看看时,出现了这个错误e: [kapt] An exception occurred: java.lang.NullPointerException,当时是更新了kotlin版本,就想着把kotlin版本回退,之前是1.2.50,结果编译还是出错

ERROR: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.10 and higher.
The following dependencies do not satisfy the required version:
root project 'MVVM-Android-master' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.50
Update plugins
Affected Modules: app

意思是我的Android Gradle插件版本过高,我用的是3.5.0,这个问题就是kotlin版本太低了或者是gradle版本太高了。

改Gradle版本是不能改的,不想一退再退,还是将kotlin版本改到了1.3.41,将An exception occurred:java.lang.NullPointerException拿去问小度,才发现是databinding不再需要在gradle文件中声明其注释处理器依赖项,因为数据绑定能够解析其依赖性(引用原文的解释)。

去掉app的build.gradle中的 kapt "com.android.databinding:compiler:3.1.4"就行了

在app的build.gradle中有下面的属性就能使用databingding了
android{
   dataBinding{
     enabled = true
   }
}

 

 

Android----java.lang.NullPointerException:---java.lang.NullPointerException:

Android----java.lang.NullPointerException:---java.lang.NullPointerException:

2021-03-06 13:26:12.274 8544-8544/com.example.helloworld E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.helloworld,PID: 8544
java.lang.NullPointerException:: Unable to start activity ComponentInfo{com.example.helloworld/com.example.helloworld.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.CheckBox.setonCheckedchangelistener(android.widget.CompoundButton$OnCheckedchangelistener)' on a null object reference
at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:3897)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8349)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.CheckBox.setonCheckedchangelistener(android.widget.CompoundButton$OnCheckedchangelistener)' on a null object reference
at com.example.helloworld.MainActivity.setListener(MainActivity.java:161)
at com.example.helloworld.MainActivity.onCreate(MainActivity.java:138)
at android.app.Activity.performCreate(Activity.java:8085)
at android.app.Activity.performCreate(Activity.java:8073)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1320)
at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:3870)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076) 
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) 
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473) 
at android.os.Handler.dispatchMessage(Handler.java:110) 
at android.os.Looper.loop(Looper.java:219) 
at android.app.ActivityThread.main(ActivityThread.java:8349) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055) 
2021-03-06 13:26:12.282 8544-8544/com.example.helloworld I/Process: Sending signal. PID: 8544 SIG: 9

 

检查一下xml文件定义的checkBox的id和在activity里获取的id是否一致

问题出在运行时找不到对应的checkBox

 

 

Process: com.example.helloworld,PID: 21319
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.helloworld/com.example.helloworld.MoreActivity}: java.lang.illegalaccessexception: java.lang.class<com.example.helloworld.MoreActivity> is not accessible from java.lang.class<android.app.AppComponentFactory>
at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:3815)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8349)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
Caused by: java.lang.illegalaccessexception: java.lang.class<com.example.helloworld.MoreActivity> is not accessible from java.lang.class<android.app.AppComponentFactory>
at java.lang.class.newInstance(Native Method)
at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:41)
at android.app.Instrumentation.newActivity(Instrumentation.java:1264)
at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:3800)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076) 
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) 
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473) 
at android.os.Handler.dispatchMessage(Handler.java:110) 
at android.os.Looper.loop(Looper.java:219) 
at android.app.ActivityThread.main(ActivityThread.java:8349) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055) 

 

这是在清单文件没有注册activity

所有的activity类都必须是public 的 不然清单文件找不到,所以就无法运行

 

java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference;

这和问题一是一样的,因为找不到对应的id

博主链接:https://blog.csdn.net/qq_42618969/article/details/81141895

 

 

 

 

页面布局常用:

android:id 为控件指定相应的ID
android:text 指定控件的文本,置尽量使用strings.xml
android:grivity 指定控件的基本位置 ,比如举重,居右,
android:padding 指定控件的内边距,控件当中的内容
android:singleLine 如果设置为真的话,则将控件的内容在同一行当中显示

android:layout_above 将该空间的底部至于给定ID的空间之上
android:layout_below: 将该控件的顶部至于给定ID的控件之下
android:layout_toLeftOf: 将该控件的右边缘和给定ID的控件的左 边缘对其
android:layout_toRightOf 将该控件的左边缘和给定的ID的控件的右边缘对齐

android:layout_alignBaseLine 该控件的baseline和给定ID的控件的Baseline对齐
android:layout_alignBottom 将该控件的底部边缘与给定ID控件的底部边缘
android:layout_alignLeft 将该控件左边缘与给定ID控件的左边缘对齐
android:layout_alignRight 将该控件的右边缘与给定ID控件的右边缘对齐
android:layout_alignTop 将给定控件的顶部边缘与给定ID控件的顶部对齐

android:alignParentBottom 如果该值为true 则将该控件的底部和父控件的底部对齐
android:layout_alignParentLeft 如果该值为true则将该控件的左边与父控件的左边对齐
android:layout_alignParentRight 如果该值为true则将该控件的右边与父控件的右边对齐
android:layout_alignParentTop 将控件的顶部与父控件的顶部对齐

android:layout_centerHorizontal 如果值为真,该控件将被至于水平方向的中央
android:layout_centerInParent 将被至于父控件水平方向和垂直都居中
android:layout_centerVertical 将被至于垂直方向的中央

第一类:属性值为true或false

android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物

第二类:属性值必须为id的引用名“@id/id-name”

android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

第三类:属性值为具体的像素值,如30dip,40px

android:layout_marginBottom 离父控件底边缘的距离
android:layout_marginLeft 离父控件左边缘的距离
android:layout_marginRight 离父控件右边缘的距离
android:layout_marginTop 离父控件上边缘的距离

EditText的android:hint
设置EditText为空时输入框内的提示信息。

android:gravity 
android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity=”right”则button上面的文字靠右

android:layout_gravity
android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,

android:layout_gravity=”right”则button靠右

android:layout_alignParentRight
使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。

padding和margin的区别:
所以padding是定义控件自己的内容和控件边缘之间的距离,padding有填充填料的意思,而margin是在说控件的四个边缘之外的距离,指的是和别的控件之间的距离,margin有边缘,页面留白的意思


原文链接:https://blog.csdn.net/qq_28296925/article/details/51115132

 

我们今天的关于布尔值的java.lang.NullPointerException布尔值的英文的分享就到这里,谢谢您的阅读,如果想了解更多关于Android java.lang.RuntimeException:无法实例化活动ComponentInfo … java.lang.NullPointerException、android – java.lang.RuntimeException无法实例化服务:java.lang.NullPointerException、Android 编译错误 [kapt] An exception occurred: java.lang.NullPointerException、Android----java.lang.NullPointerException:---java.lang.NullPointerException:的相关信息,可以在本站进行搜索。

本文标签: