chabok-io / chabok-panel

2 stars 0 forks source link

کلاینت چابک نمی تواند فایل تنظیمات را پیدا کند #6

Closed Hoss3inf closed 4 years ago

Hoss3inf commented 4 years ago

سلام. وقت بخیر

برای راه اندازی هوشمند، همه ی تنظیمات را انجام داده ام و فایل سند باکس را در پوشه ی app کپی کرده ام. اما هنگام اجرا با ارور java.lang.IllegalStateException: AdpPushClient not initialized, Make sure to put the json files in root of your project. Please see http://bit.ly/32x1Tsn مواجه می شوم. لطفا راهنمایی کنید.

farbod-s commented 4 years ago
سلام روز بخیر

در فایل json که دانلود کردید تغییری ایجاد کردید؟
کتابخانه چابک هنگام خواندن تنظیمات کلیدها رو نتونسته پیدا کنه.
مطمئن بشید فایل تنظیمات در پوشه ماژول اصلی برنامه باشه و پلاگین چابک رو به فایل gradle اضافه کرده باشید طبق مستندات راه‌اندازی.
پیشنهاد میکنم برای شروع پروژه نمونه رو هم بررسی کنید.

اگر محیط توسعه‌تون سندباکس هست حتما محیط توسعه رو سندباکس انتخاب کنید در هنگام راه‌اندازی در کلاس اپلیکیشن مانند قطعه کد زیر:
AdpPushClient.configureEnvironment(Environment.SANDBOX);
اگر مشکلتون حل نشد بگید تا دقیق‌تر بررسی کنیم.
Hoss3inf commented 4 years ago

سلام روز بخیر

در فایل json که دانلود کردید تغییری ایجاد کردید؟

خیر. فایل جیسون را در پروژه استارتر امتحان کرده ام. کاملا کار میکند.

کتابخانه چابک هنگام خواندن تنظیمات کلیدها رو نتونسته پیدا کنه. مطمئن بشید فایل تنظیمات در پوشه ماژول اصلی برنامه باشه و پلاگین چابک رو به فایل gradle اضافه کرده باشید طبق مستندات راه‌اندازی.

طبق مستندات انجام شده. ورژن وابستگی ها هم به صورت زیر هست که عینا از پروژه کپی شده:

    implementation 'com.google.firebase:firebase-messaging:20.1.0'
//chabok
    implementation 'com.adpdigital.push:chabok-lib:3.0.0'
    implementation 'me.leolin:ShortcutBadger:1.1.22@aar'
    implementation 'com.android.installreferrer:installreferrer:1.0'

پیشنهاد میکنم برای شروع پروژه نمونه رو هم بررسی کنید.

اگر محیط توسعه‌تون سندباکس هست حتما محیط توسعه رو سندباکس انتخاب کنید در هنگام راه‌اندازی در کلاس اپلیکیشن مانند قطعه کد زیر:

AdpPushClient.configureEnvironment(Environment.SANDBOX);

این قطعه کدی هست که باهاش الان دارم کار میکنم:

AdpPushClient.setApplicationContext(this); // ضروری
AdpPushClient.configureEnvironment(Environment.SANDBOX); // ضروری

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

با نسخه ۳.۱ چابک هم امتحان کردم جواب نداد.

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

2019-12-25 17:29:56.263 3256-3256/net.ragham.booking E/AndroidRuntime: FATAL EXCEPTION: main
    Process: net.ragham.booking, PID: 3256
    java.lang.RuntimeException: Unable to create application net.ragham.booking.App: java.lang.IllegalStateException: AdpPushClient not initialized, Make sure to put the json files in root of your project. Please see http://bit.ly/32x1Tsn
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5364)
        at android.app.ActivityThread.-wrap2(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6077)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
     Caused by: java.lang.IllegalStateException: AdpPushClient not initialized, Make sure to put the json files in root of your project. Please see http://bit.ly/32x1Tsn
        at com.adpdigital.push.config.NZV.<init>(SourceFile:21)
        at com.adpdigital.push.config.XTU.<init>(SourceFile:5)
        at com.adpdigital.push.config.MRR.getConfiguration(SourceFile:8)
        at com.adpdigital.push.AdpPushClient.configureEnvironment(SourceFile:4088)
        at com.adpdigital.push.AdpPushClient.configureEnvironment(SourceFile:4084)
        at net.ragham.booking.App.initializeChabok(App.java:271)
        at net.ragham.booking.App.onCreate(App.java:259)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5361)
        at android.app.ActivityThread.-wrap2(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6077) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 
2019-12-25 17:29:56.397 2088-3365/? E/libEGL: validate_display:99 error 3008 (EGL_BAD_DISPLAY)

image این هم مسیری هست که فایل جسون رو قرار دادم.

این همه ی اطلاعاتی بود که به نظرم می تونست مفید باشه. اگر جزییات بیشتری خواستید، بفرمایید پیشاپیش ممنون از راهنمایی تون

farbod-s commented 4 years ago
یه مورد دیگه رو هم با هم چک کنیم. پلاگین چابک رو در فایل گریدل پروژه اضافه کردید؟
apply plugin: 'io.chabok.plugin.chabok-services'
apply plugin: 'com.google.gms.google-services'
Hoss3inf commented 4 years ago

بله. این مورد هم انجام شده واقعا هر چی بگین امتحان کردم راهی نداره که بفهمم لایبرری چه مسیری رو چک میکنه برای اینکه فایل رو پیدا کنه؟ نمیدونم که فایل رو پیدا میکنه و نمیتونه بخونه، یا اصن پیداش نمی کنه. یه چیزی مث لاگ دیباگ یا همچین چیزی

farbod-s commented 4 years ago
یکبار گریدل رو سینک کنید و فایل موجود در مسیر زیر رو بررسی کنید که موجود باشه و محتوای اون به درستی پر شده باشه
(تعداد آیتم‌های موجود در فایل با تعداد آیتم‌های موجود در فایل تنظیمات باید یکی باشه)
توجه کنید debug و release همون buildType ها هستن و بسته به پروژه شما ممکنه اسامی متفاوتی داشته باشه.
app/build/generated/res/chabok-services/debug/values.xml
app/build/generated/res/chabok-services/release/values.xml
برای اینکه ببینیم تسک چابک در گریدل خطایی داره یا نه یکبار تسک زیر رو مستقل اجرا کنید.
وقتی تسک اجرا شد لاگ رو چک کنید پیامی مبنی بر پیدا نکردن فایل مشاهده می‌کنید یا خیر.
(از بخش گریدل در اندروید استودیو لیست تسک‌های اپ رو باز کنید در مسیر زیر)
app/Tasks/other/DebugChabokConfigResTask
app/Tasks/other/ReleaseChabokConfigResTask
Screen Shot 1398-10-04 at 21 19 29
یه سوال دیگه: از Dexguard استفاده می‌کنید؟
لطفا نتیجه رو اطلاع بدید
اگر نیاز بود فایل‌ها رو به ایمیل من ارسال کنید: f.samsami[at]chabok.io
Hoss3inf commented 4 years ago

چه راهنمایی کاملی. علی الحساب بگم خدمتتون که از proguard استفاده می کنم و کلاس اصلی برنامه هم به جای App از MultiDexApplication اکستند شده. گفتم تا موارد دیگه رو تست می کنم، این مورد رو بگم بهتون شاید مهم باشه البته پروگارد برای بیلد دیباگ، همون بیلدی که این مشکل رو دارم، غیرفعاله

Hoss3inf commented 4 years ago

مشکلم حل شد. الان درست شد کاملا. ممنون از وقتی که گذاشتید

farbod-s commented 4 years ago
عالی
اگر بگید مشکل از کجا بوده و چطوری برطرف شده ممنون میشم تا اگر دیگران هم به این مشکل برخوردن بتونیم به سرعت برطرفش کنیم یا اگر نیاز هست مستندات رو اصلاح کنیم.
ممنون
Hoss3inf commented 4 years ago

حتما. کارهایی که انجام دادم اینها بود، که بیشتر به نظر میرسه ایراد از سمت خودم بوده و مستندات گویا هست برنچ رو ریست کردم، دوباره از اول طبق مستندات انجام دادم. Build --> Clean Project File --> sync Project with Gradle files فایل های جیسون رو هم طبق مستندات قرار دادم. این بار همه چی درست بود.