رفتن به مطلب
  • 0

خطا در بعد از نمایش تبلیغ


MrMedia

سوال

سلام من بعد از اتمام نمایش تبلیغات تپسل این خطا رو دریافت میکنم:

pa_tapsell_onopened (java line: 567)
java.lang.NullPointerException: Attempt to read from field 'test.app.com.main test.app.com.ad._main' on a null object reference
	at test.app.com.ad._tapsell_onopened(ad.java:567)
	at java.lang.reflect.Method.invoke(Native Method)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:170)
	at ir.tapsell.sdk.b4a.Tapsell$7.run(Tapsell.java:273)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:148)
	at android.app.ActivityThread.main(ActivityThread.java:7325)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

من بعد از اتمام تبلیغ در قسمت ساب Tapsell_onClosed و یا Tapsell_onAdShowFinished هر کدی مینویسم برای فراخوانی سرویس یا اکتیویتی ارور میده
در ضمن این نکته رو هم بگم که من هیچ یک از اطلاعاتی که به ساب های گفته شده ارسال شده رو استفاده نمی کنم و فقط اکتیویتی یا سرویس رو فرا می خونم
مشکل کجاست دوستان؟ ممنون میشم راهنمایی کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

6 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در 1 ساعت قبل، alimo1999 گفته است :

کدی که بالا گفتم کاملا درست هست فقط کافیه یه تایمر ایجاد کنید که مقدار بولین و چک کن و اگر مقدار true بود بیاد یه کار کنی حالا می تونه یا سرویس استارت کنه یا اکتویتی یا مقداری رو سیو کنه و....

کدش :


Sub t56_tick
      If videoViewed  = True Then
	  		save12
	  	videoViewed = False
	  End If 
		
End Sub

Sub save12

		arias.SaveInt("tabs",1+tabs)
End Sub

 

ممنون از راهنماییتون ولی همونطور که گفتم و تست هم کردم ساب close و finish فقط میشه مقادیر رو گرفت و چک کرد و... ولی نمیشه اکتیویتی و سرویس اجرا کرد و خطا میده اگه تست کردین شما و جواب میده یه حرفه ولی من در 3 تا گوشی هانر اندروید 4 - هوآووی اندروید 7 - الجی اندروید 6 تست کردم و بعد فراخوانی اکتیویتی و سرویس خطا میده حالا شاید بشه در ساب کلوز با یه کد sleep کمی تاخیر ایجاد کرد و مطمئن شد که اکتیویتی تپسل بسته شده و سرویس اجرا کرد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

نه دوست عزیز تو اون ساب هر چی مستقیم بنویسی ایراد میگیره اون ساب فقط برای مقدار بولین هست کد های بالا خیلی  شفاف هست

ولی من باز یکبار دیگه تو ضیح می دم :

فقط کافیه یه مقدار بولین رو بذاری تو اون ساب و ایف های مربوط رو بدی بعد بیرون از اون ساب یه تایمر تعریفی کنی که مقدار بولین رو هی چک کن بعد اگه مقدار تورو شد بیای ی اکتویتی یا سرویس دیگه ای رو اجرا کنی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 3 ساعت قبل، miling گفته است :

سلام من بعد از اتمام نمایش تبلیغات تپسل این خطا رو دریافت میکنم:


pa_tapsell_onopened (java line: 567)
java.lang.NullPointerException: Attempt to read from field 'test.app.com.main test.app.com.ad._main' on a null object reference
	at test.app.com.ad._tapsell_onopened(ad.java:567)
	at java.lang.reflect.Method.invoke(Native Method)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:170)
	at ir.tapsell.sdk.b4a.Tapsell$7.run(Tapsell.java:273)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:148)
	at android.app.ActivityThread.main(ActivityThread.java:7325)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

من بعد از اتمام تبلیغ در قسمت ساب Tapsell_onClosed و یا Tapsell_onAdShowFinished هر کدی مینویسم برای فراخوانی سرویس یا اکتیویتی ارور میده
در ضمن این نکته رو هم بگم که من هیچ یک از اطلاعاتی که به ساب های گفته شده ارسال شده رو استفاده نمی کنم و فقط اکتیویتی یا سرویس رو فرا می خونم
مشکل کجاست دوستان؟ ممنون میشم راهنمایی کنید

سلام

طبق برداشت من :

وقتی تبلیغات تمام میشه یا درحال پخش هست رو اکتویتی خود تون نیست(واکتویتی تپسل جایگزین میشه) در نتیجه اصلا کد های تو برنامه هر نوعی که باشه خطا ایجاد می کنه ولی اگه یک مقدار بولین که از نوع true یا false هست(چون فکر کنم فقط این مقدار رو تعریف کردن) باشه مشکل بر طرف خواهد شد

یه نمونه کد برای جایزه دادن به کار بر :

 Dim videoViewed As Boolean = False


Sub Tapsell_onAdShowFinished (zoneId As String, adId As String, completed As Boolean, rewarded As Boolean)
    ' showing ad was finished
	If completed = True Then
	
			ToastMessageShow("امتیاز شما افزوده شد!!!",True)
   videoViewed = True
		
		
			
	End If
	
	
	
   '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'   
If completed = False Then
		If rewarded = True Then
			ToastMessageShow("لطفا ویدیو رو تا آخر ببینید!!!",True)
						
				
			End If
	End If
					
		
End Sub

بعد یه تایمر تعریف کن مقدار videoViewed رو برسی کنه هی

موفق باشی

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

تست نکردم، ولی حرف شما کاملا درسته و اکتیویتی تپسل جایگزین میشه و به همین خاطر هستش که برنامه خطا میده ولی چک کردن مقادیر در اکتیویتی در ساب Tapsell_onAdShowFinished در صورتی که مقدار true  باشه خوبه ولی در صورتی که بخای یک سرویس یا یک اکتیویتی لود کنی مطمئنا خطا میده و احتمالا این عمل رو فقط باید در ساب Tapsell_onClosed عملی کرد، وقتی که تبلیغ بسته میشه
البته اگه اشتباه نکنم اینکارم کردم ولی بازم ارور داده ولی بازم چک میکنم و نتیجه رو هم در همین پست اعلام میکنم تا دوستان هم سود ببرن، ممنون ازتون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

چک کردم و درست حدس زدم، هر گونه فراخونی سرویس و اکتیوتی ارور میده و فقط باید از مقادیر دریافتی از ساب finish استفاده کرد همین

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 8 ساعت قبل، miling گفته است :

تست نکردم، ولی حرف شما کاملا درسته و اکتیویتی تپسل جایگزین میشه و به همین خاطر هستش که برنامه خطا میده ولی چک کردن مقادیر در اکتیویتی در ساب Tapsell_onAdShowFinished در صورتی که مقدار true  باشه خوبه ولی در صورتی که بخای یک سرویس یا یک اکتیویتی لود کنی مطمئنا خطا میده و احتمالا این عمل رو فقط باید در ساب Tapsell_onClosed عملی کرد، وقتی که تبلیغ بسته میشه
البته اگه اشتباه نکنم اینکارم کردم ولی بازم ارور داده ولی بازم چک میکنم و نتیجه رو هم در همین پست اعلام میکنم تا دوستان هم سود ببرن، ممنون ازتون

کدی که بالا گفتم کاملا درست هست فقط کافیه یه تایمر ایجاد کنید که مقدار بولین و چک کن و اگر مقدار true بود بیاد یه کار کنی حالا می تونه یا سرویس استارت کنه یا اکتویتی یا مقداری رو سیو کنه و....

کدش :

Sub t56_tick
      If videoViewed  = True Then
	  		save12
	  	videoViewed = False
	  End If 
		
End Sub

Sub save12

		arias.SaveInt("tabs",1+tabs)
End Sub

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...