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

خطای بسیار عجیب در اندروید10


امیرحسین قاسمی

سوال

باسلام،

من چونکه با دیوایس واقعی کار میکنم نمیتونم لاگ بگیرم(با b4a bridge هم لاگ ارسال نمیشه)

اول از همه اگه زحمتی نیست یک شبیه ساز اندروید معرفی کنید که اندروید 10 داشته باشه و من بتونم باهاش لاگ بگیرم. ممنون میشم:53:

این برنامه من روی هیچ دیوایسی که اندروید پایین تر از ده داشته باشه فورس کلوز نمیده! اما روی اندروید ده فورس کلوز میده.

بادستور Return سعی کردم اشکال رو رفع کنم.فهمیدم توی اندروید ده خط زیر که توی Activity Create اکتویتی Main قرار داره موجب بروز خطا و درنهایت فورس کلوز میشه:

Dim http_gettime As HttpJob
http_gettime.Initialize("http_gettime",Me)
http_gettime.Download("http://mydomain.ir/time.php")

حتی توی تابع JobDone همون اولش return هم گذاشتم تا کدهای داخلش اجرا نشه بازهم توی اندروید ده فورس کلوز داد!!

اما توی اندروید های دیگه هیچگونه مشکلی پیش نمیاد.

راستی برای این کدها Try catch هم گذاشتم و گفتم که اگه نتونست اجرا بشه لاگ رو توی Msgbox چاپ کنه.بدین شکل

    try 
    http_gettime.Download("http://paeezapps.ir/DLT/time.php")
	Catch
	Msgbox(LastException,"خطا داد")
	End Try

امّا بدون اینکه حتی msgbox بیاد دوباره فورس کلوز داد مطمئن هستم که از این خط هست. ای کاش میتونستم از اندروید ده از برنامم لاگ بگیرم:20:

چکار کنم؟:sad:

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

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

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

سلام وقت بخیر

با این کار شما صورت مساله رو پاک کردی.هر چقد جلوتر میریم باید بروز تر باشیم، تارگت ورژن هم باید به تناسب api که به بیسیک معرفی کردین بالاتر بره.ینی تارگت ورژن کوچکتر مساوی api  باید باشه(الان که اندروید 11 هم اومده باید api 30 رو دانلود کنید  وبه پوشه مخصوصش تو sdk انتقال بدین و تو بیسیک اون رو معرفی کنین که با اون api کامپایل بشه و تو منیفست هم تارگت ورژن رو بهتره روی 29 تنظیم کنین تا تو مواردی که با حافظه خارجی کار میکنین تو اندروید 10 به بالا به مشکل نخورین،البته این روش خودش مورد دار هست ولی  فعلا چاره ای نیست)

برای اینکه وقتی با  گوشی وصل هستین لاگ رو هم تو بیسیک چاپ کنین کد زیر رو تو اکتیویتی main اون بالا اضافه کنین تا لاگ رو هم بتونین دریافت کنین.   

	#BridgeLogger: true

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

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

در در 22 اسفند 1399 در 20:27، امیرحسین قاسمی گفته است :

باسلام،

من چونکه با دیوایس واقعی کار میکنم نمیتونم لاگ بگیرم(با b4a bridge هم لاگ ارسال نمیشه)

اول از همه اگه زحمتی نیست یک شبیه ساز اندروید معرفی کنید که اندروید 10 داشته باشه و من بتونم باهاش لاگ بگیرم. ممنون میشم:53:

این برنامه من روی هیچ دیوایسی که اندروید پایین تر از ده داشته باشه فورس کلوز نمیده! اما روی اندروید ده فورس کلوز میده.

بادستور Return سعی کردم اشکال رو رفع کنم.فهمیدم توی اندروید ده خط زیر که توی Activity Create اکتویتی Main قرار داره موجب بروز خطا و درنهایت فورس کلوز میشه:


Dim http_gettime As HttpJob
http_gettime.Initialize("http_gettime",Me)
http_gettime.Download("http://mydomain.ir/time.php")

حتی توی تابع JobDone همون اولش return هم گذاشتم تا کدهای داخلش اجرا نشه بازهم توی اندروید ده فورس کلوز داد!!

اما توی اندروید های دیگه هیچگونه مشکلی پیش نمیاد.

راستی برای این کدها Try catch هم گذاشتم و گفتم که اگه نتونست اجرا بشه لاگ رو توی Msgbox چاپ کنه.بدین شکل


    try 
    http_gettime.Download("http://paeezapps.ir/DLT/time.php")
	Catch
	Msgbox(LastException,"خطا داد")
	End Try

امّا بدون اینکه حتی msgbox بیاد دوباره فورس کلوز داد مطمئن هستم که از این خط هست. ای کاش میتونستم از اندروید ده از برنامم لاگ بگیرم:20:

چکار کنم؟:sad:

سلام

زمانی که targetSdkVersion  روی 29 بود ، از کتابخانه OkHttpUtils2 استفاده میکردید یا HttpUtils2 ؟

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

اصول و روند کارشون یکیه.

در مارکت ها دارن محدودیت ایجاد میکنن و سعی کنید به sdk های قدیمی برنگردید.

 

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

در 53 دقیقه قبل، امیرحسین قاسمی گفته است :

باسلام،

من چونکه با دیوایس واقعی کار میکنم نمیتونم لاگ بگیرم(با b4a bridge هم لاگ ارسال نمیشه)

اول از همه اگه زحمتی نیست یک شبیه ساز اندروید معرفی کنید که اندروید 10 داشته باشه و من بتونم باهاش لاگ بگیرم. ممنون میشم:53:

این برنامه من روی هیچ دیوایسی که اندروید پایین تر از ده داشته باشه فورس کلوز نمیده! اما روی اندروید ده فورس کلوز میده.

بادستور Return سعی کردم اشکال رو رفع کنم.فهمیدم توی اندروید ده خط زیر که توی Activity Create اکتویتی Main قرار داره موجب بروز خطا و درنهایت فورس کلوز میشه:


Dim http_gettime As HttpJob
http_gettime.Initialize("http_gettime",Me)
http_gettime.Download("http://mydomain.ir/time.php")

حتی توی تابع JobDone همون اولش return هم گذاشتم تا کدهای داخلش اجرا نشه بازهم توی اندروید ده فورس کلوز داد!!

اما توی اندروید های دیگه هیچگونه مشکلی پیش نمیاد.

راستی برای این کدها Try catch هم گذاشتم و گفتم که اگه نتونست اجرا بشه لاگ رو توی Msgbox چاپ کنه.بدین شکل


    try 
    http_gettime.Download("http://paeezapps.ir/DLT/time.php")
	Catch
	Msgbox(LastException,"خطا داد")
	End Try

امّا بدون اینکه حتی msgbox بیاد دوباره فورس کلوز داد مطمئن هستم که از این خط هست. ای کاش میتونستم از اندروید ده از برنامم لاگ بگیرم:20:

چکار کنم؟:sad:

سلام

بهترین شبیه ساز جنی موشن هست اندروید 10 هم داره و میتونید لاگ بگیرید

درباره ارور هم نظری ندارم

 

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

سلام مجدد،

یک پروژه تستی ایجاد کردم بازهم همون فورس کلوز روی Android 10 رخ داد ولی روی اندرویدهای پایین تر هیچ مشکلی پیش نمیاد!

مشکل به گمانم از httpjob هست.

درضمن اصلا نمیتونم از کتابخونه های جایگزین استفاده کنم چون توی پروژه اصلیم 1000 دفعه از httpjob استفاده کردم:DD:

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

سلام خدمت شما

این مورد رو تست کنید،

کد زیر رو به منیفست اضافه کنید:

SetApplicationAttribute(android:usesCleartextTraffic, "true")

باعث میشه اپتون بتونه در اندروید 10 به بالا از پروتکل http استفاده کنه.

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

باتشکر از کمک همه دوستان♥

targetSdkVersion روی 29 بود برابر 26 قرار دادم درست شد.

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

بایگانی شده

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

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

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