نحوه رفع خطای 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference

بروز شد ۲ سال ۳ ماه قبل توسط ر مرادی

سلام.

برنامه بنده اطلاعات رو از سرور میخونه و لینک ها هم https هستند

مشکل بنده مجدد اینه که تا اندروید 8.1 مشکلی نداره و برنامه به درستی اجرا میشه منتها بالاتر از این فورس کلوز میده و این خطا رو به من نمایش میده:

Attempt to invoke virtual method ‘boolean java.lang.String.equals(java.lang.Object)’ on a null object reference

ولی تا اندروید 8.1 مشکلی نداره و به درستی کار میکنه!

این کدها رو هم داخل مانی فست برنامه قرار دادم:

داخل تگ اپلیکیشن اینو قراردادم:

android:usesCleartextTraffic="true"
و پایین تگ اپلیکیشن هم اینو قراردادم:
<uses-library
    android:name="org.apache.http.legacy"
    android:required="false" />

<meta-data
android:name=”com.google.android.actions”
android:resource=”@xml/network_security_config” />

اکسپورت همه اکتیویتی ها رو هم true قرار دادم.

android:exported="true"

مشکل بنده از چیه؟

کدهای تون رو به این شکل تغییر بدید و مجدد چک کنید :

    if (ActivityShowLifeInsure != null && ActivityShowLifeInsure.data != null && !ActivityShowLifeInsure.data.isEmpty()){
        Intent intent = new Intent(ActivityWaitLoadLifeInsureDetails.this, ActivityShowLifeInsure.class);
        intent.putExtra("id", id);
        startActivity(intent);
        timer.cancel();
        finish();
    }

لینک ها رو 

http 

کردم درست نشد.

منتها دستوری که من بهش داده بودم این خط کدها بود:

    if (!ActivityShowLifeInsure.data.equals("")){
Intent intent = new Intent(ActivityWaitLoadLifeInsureDetails.this, ActivityShowLifeInsure.class);
intent.putExtra("id", id);
startActivity(intent);
timer.cancel();
finish();
}


وقتی که دستور 

if 

رو حذف میکنم درست میشه و خطایی نمیده.

چرا زیر اندروید 9 این خطا نمیاد؟

 

چه کدی اضافه کنم که به دستور ایف من ایراد نگیره؟

دو تا پیشنهاد دارم برای اینکه مشکل رو پیدا کنید :
1- اول کدهایی که قبل و بعد از ارسال درخواست به سمت سرور رو کامل چک کنید با حالت دیباگ,

2- در صورتی که مورد اول نتونست کمک کنه, ممکنه موقع رخ دادن خطا, خطی که درون اون خطا وجود داره داخل تب run در پایین Android Studio برای شما با رنگ آبی نشون بده و میتونید حل کنید

3- اگر هیچ کدوم از اینا هم نبود لینک های https رو به http تغییر بدید.

این خطا روی اندروید 8.1 به بالا رخ میده و پایین تر از اون برنامه اوکیه و کار میکنه

با سلام

در جزییات خطای که ارسال کرده اید دیده میشود که شما دو رشته را به یک دیگر مقایسه میکنید اما یکی از این دو رشته دارای مقداری Null می باشد و امکان مقایسه وجود ندارد.

دنبال جای بگردید که دو رشته متن رو با هم مقایسه کردید.

ارسال پاسخ

برای وارد کد از تگ pre استفاده کنید.

به تگ شروع attribute کلاس EnlighterJSRAW بدهید.

برای تنظیم زبان کد ها از attribute خاص data-enlighter-language استفاده کنید.

<pre class="EnlighterJSRAW" data-enlighter-language="php">..your codes..</pre>

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

مقالات پیشنهادی

جاوا اسکریپت

جاوا اسکریپت یک زبان پویا و محبوب مبتنی بر شیء, داینامیک و مفسری می باشد. این زبان برای برنامه نویسی سمت سرور و کلاینت استفاده میشود که ...


۸۸۴
۰
۱۳ آذر ۱۳۹۹

بک لینک چیست؟

بک لینک (Back Link) به لینک دادن یک سایت به سایت دیگر گفته میشود که یک فاکتور مهم و اساسی در سئو هر سایتی می باشد.


۱۰۱۱
۰
۲۲ آذر ۱۳۹۹

پی اچ پی - PHP

با استفاده از این زبان می توان وب سایت های پویا طراحی کرد, این زبان می تواند با HTML ادغام شود, در حقیقت یک زبان اسکریپتی متن باز و رایگان است. یعنی زمانی که سرور درخواست ...


۹۶۵
۰
۱۳ آذر ۱۳۹۹

هک و امنیت

در تعریف کلی این واژه می توان گفت که به پیدا کردن راه های نفوذ به یک حریم شخصی و استفاده غیر مجاز از آن را هک می نامیم. هدف از هک می تواند ...


۹۷۵
۰
۱۳ آذر ۱۳۹۹