আমি কীভাবে এই ক্র্যাশলিটিক্সস মিসিংডেপেন্ডেন্সএক্সেপশন ঠিক করতে পারি?


104

আমি কিছু সময়ের জন্য সর্বশেষ ক্র্যাশলাইটিক্স (ফ্যাব্রিক সংহতকরণ) ব্যবহার করছি। তবে সম্প্রতি নির্ভরযোগ্যতা হারিয়ে যাওয়ার কারণে আমি নিম্নলিখিত ক্র্যাশ ত্রুটির মুখোমুখি হয়েছি যদিও আমি ক্র্যাশলিটিক্স কনফিগারেশনগুলি সম্পর্কে কিছুই পরিবর্তন করি নি।

কোন ধারণা?

02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .   \ |  | /
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .    \    /
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     \  /
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .      \/
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
    install an Android build tool and ask a team member to invite you to this app's organization.
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .      /\
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     /  \
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .    /    \
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .   / |  | \
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .     |  |
02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935  18887-18887/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.android.staging, PID: 18887
    java.lang.RuntimeException: Unable to create application com.example.android.App: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: com.crashlytics.android.CrashlyticsMissingDependencyException:
    This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
    install an Android build tool and ask a team member to invite you to this app's organization.
            at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4734)
            at android.app.ActivityThread.access$1600(ActivityThread.java:171)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1357)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:157)
            at android.app.ActivityThread.main(ActivityThread.java:5506)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
            at dalvik.system.NativeStart.main(Native Method)

নীচের উত্তরে উল্লিখিত হিসাবে, আমরা একটি স্থির উপর কাজ করছি, তবে 1.14.4 ব্যবহার করা কাজ করবে যখন আমরা এর নীচে পৌঁছতে থাকব।
মাইক বোনেল

আমি কেবল অ্যান্ড্রয়েড স্টুডিও দম্পতিদের জন্য ফ্যাব্রিকগুলি আনইনস্টল এবং ইনস্টল করার চেষ্টা করি। এএসকে তার বিচক্ষণতা ফিরে পেতে কয়েকবার পুনরায় চালু করতে হবে।
রবার্ট

উত্তর:


22

আপাতত একমাত্র কাজ, যদি আপনার সত্যিই আপনার অ্যাপটি প্রকাশ করার দরকার হয় (আমার মতো), ডায়নামিক সংস্করণ সংখ্যাগুলি স্থিতিশীলগুলিতে পরিবর্তন করা:

[...]

classpath 'io.fabric.tools:gradle:1.14.4'

[...]

compile('com.crashlytics.sdk.android:crashlytics:2.2.0@aar') {
        transitive = true
}

[...]

সম্পাদনা করুন:

ফ্যাব্রিক এসডিকে একটি আপডেট সংস্করণ প্রকাশিত হয়েছে; আপনি এটিতে লাইনটি পরিবর্তন করে এটি পেতে পারেন:

classpath 'io.fabric.tools:gradle:1.26.1'

1
আপনি কী বলতে চাইছেন তা সম্পর্কে আমি নিশ্চিত নই, তবে তারা দুটি অভিন্ন ম্যাভেন রেপো: https://maven.fabric.io/repoএবংhttps://maven.fabric.io/public
gw0

1
এখানে উপলব্ধ সংস্করণগুলি রয়েছে: s3.amazonaws.com/fabric-artifacts/public/io/fabric/tools/gradle/…
জোসে আন্তোনিও পোস্টিগো

96

আমি ফ্যাব্রিক / ক্র্যাশলিটিক্স ইনস্টল করার আগে আমি নিম্নলিখিত কোডগুলি যুক্ত করেছি:

debug {
    ext.enableCrashlytics = false
}

ক্র্যাশলিটিক্স দিয়ে প্রথম রান করার আগে এটিকে সরিয়ে দেওয়া সমস্যার সমাধান করে। প্রথম রান করার পরে আর সমস্যা দেখা দেয় না।


2
আমি একই সমস্যাটি 1.20.1 এবং 2.5.2@aar এর সাথে পাচ্ছি। তবে আমি এই কাজটি সিআই-তে ব্যবহার করতে পারি না কারণ প্রতিটি বিল্ডের জন্য বিল্ড ওয়ার্কস্পেসটি পুনরায় সেট করা হয় :(
হিউ রকার

1
আমি ইঞ্জিনিয়ারদের সাথে ফ্যাব্রিক এ কাজ করছি। বিভিন্ন টাইমজোনগুলি স্তন্যপান করে এবং এটি ইতিমধ্যে আমাদের প্রায় 2 সপ্তাহ সময় নিয়েছে। এখনও কোন সমাধান নেই। তবে আপনি সিআই:। / গ্রেডলিউন ক্লিন এসেম্বল করুন, তারপরে। / গ্রেডলে অ্যাসেম্বল করে, দ্বিতীয় কমান্ড দ্বারা উত্পন্ন এপিকে স্বাভাবিক হিসাবে কাজ করবে on
হাইও রকার 14

3
@ থুই ট্রিনহ এটি ডাইটা বাইন্ডিং = সত্যের কারণেই প্রমাণিত হয়েছে। ক্র্যাশলাইটিক্স এর জন্য একটি সমাধান ঘটিয়েছে: twittercommune.com/t/…
হাইও রকার

1
আজ ফ্যাব্রিক প্লাগইন আপডেট হয়েছে এবং এই ত্রুটি পেয়েছে। ওয়ার্কআরউন্ড সাহায্য করে, তবে এটি পরবর্তী রানগুলিতে কার্যকর হয় না। সুতরাং আমি রান জন্য এই লাইন মন্তব্য করতে হবে।
আর্নেস্ট

1
এটি আমার পক্ষে কাজ করছে নাcom.crashlytics.sdk.android:crashlytics:2.6.8@aar
তাস

27

আমি গ্রেড এ মন্তব্য ছিল

apply plugin: 'io.fabric'

এটি uncomment প্রয়োজন

বা যদি এটি না থাকে তবে এটি যুক্ত করুন!


14

প্লাগইন সংস্করণটি নির্দিষ্ট করার মতো বলে মনে হচ্ছে:

classpath 'io.fabric.tools:gradle:1.+' 

1.15.1 তুলেছে, এতে সমস্যা রয়েছে।

পূর্বের থেকে বড় এবং অপ্রাপ্তবয়স্ক নির্দিষ্ট 1.14করা স্থিতিশীল বলে মনে হচ্ছে:

classpath 'io.fabric.tools:gradle:1.14.+'

13

আপডেট প্লাগইন পরে আমার একই সমস্যা ছিল। AndroidManLive.xML থেকে অপসারণ প্রয়োজন সমাধান করতে:

<meta-data
    android:name="com.crashlytics.ApiKey"
    android:value="API_SECRET_KEY" />

এবং ফ্যাব্রিক.প্রেরিতে যুক্ত করুন:

apiSecret=API_SECRET_KEY
apiKey=YOUR_SECRET_KEY

হালনাগাদ:

এখন, আপনাকে ব্যবহার করতে হবে:

  <meta-data
      android:name="io.fabric.ApiKey"
      android:value="API_KEY" />

1
তাদের একীকরণের দিকনির্দেশগুলি পুরানো বলে মনে হয়েছিল। আপাতদৃষ্টিতে আর <meta-data android:name="io.fabric.ApiKey" android:value="YOUR_API_KEY"/>এএম ফাইলে ফ্যাব্রিক.প্রপার্টিগুলির দরকার পড়ে না a নামটি "com.crashlytics.ApiKey" থেকে "io.fabric.ApiKey" এ পরিবর্তন করা হয়েছিল।
থুই ত্রিনহ

1
হ্যাঁ তুমি সঠিক. এটা গুরুত্বপূর্ণ. আমি আমার পোস্ট আপডেট। ধন্যবাদ.
সের্গেই কে

13

যদি আপনি প্রদর্শিত হিসাবে ডিবাগের সময় অক্ষম ফাংশনটি ব্যবহার করছেন

 Crashlytics crashlyticsKit = new Crashlytics.Builder()
            .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
            .build();
    Fabric.with(this, crashlyticsKit);

আপনি ক্র্যাশলিটিক্সের সংস্করণ আপডেট করার পরে যা ঘটে

Fabric.with(this, crashlyticsKit); 

পরিণত হয়

Fabric.with(this,new Crashlytics());

সুতরাং এটিকে ক্র্যাশলিটিক্সকেটে ফিরে যেতে নিশ্চিত করুন। আপনি যদি এটি সঠিকভাবে করছেন এবং ত্রুটিটি এখনও উপস্থিত হয় তবে আপনার কাছে নিশ্চিত হয়ে নিন

debug {

      ext.enableCrashlytics = false
 }

অ্যান্ড্রয়েড {বিল্ডটাইপস under} under এর অধীনে


11

ক্র্যাশলিটিক্স থেকে মাইক এখানে। আমরা আজ থেকে একটি আপডেট সংস্করণ প্রেরণ করেছি - ১.১৫.২ - এর আগে এই আচরণের জন্য একটি সমাধান অন্তর্ভুক্ত রয়েছে। আপনি যদি চালান:

./gradlew assemble --refresh-dependencies

এটি সর্বশেষতম সংস্করণে টানবে। আপনি ঠিক করতে এখানে আরও বিশদ দেখতে পারেন can


1
আমি কেবল ক্র্যাশলাইটিক্স দ্বারা ফ্যাব্রিক ইন্টিগ্রেশন ব্যবহার করছি না এবং আমি ক্র্যাশলিটিক্স মিসিংডেপেন্ডেন্সএক্সসেপশনও পাচ্ছি। আমি কীভাবে এটি মোকাবেলা করতে পারি?
বোগুমিল

@ বোগুমিল আপনি কি আপনার বিল্ড.gradle এর কিছু অংশ অন্তর্ভুক্ত করতে পারবেন?
মাইক বোনেল

2
@ মাইকবি কিছু সময়ের পরে আবার ক্র্যাশলাইটিক্স মিসিংডেপেন্ডেন্সিএক্সসেপশন পাচ্ছি। আমি ব্যবহার করছি: নির্ভরতা {শ্রেণিপথ 'com.android.tools.build:gradleuthor.2.3' শ্রেণিপথ 'com.crashlytics.tools.gradle: ক্র্যাশলিটিক্স-গ্রেডল: 1.16.0'} এবং সংকলন 'com.crashlytics.android : ক্র্যাশলাইটিক্স: 1.1.13 '
বোগুমিল

হুম, খুব বিজোড় @ বোগুমিল। রিফ্রেশ-নির্ভরতা চালানো সাহায্য করে?
মাইক বোনেল

@ মাইকবি এটি সাহায্য করে না। @ সমর্থন করার জন্য আমি একটি ইমেলও পাঠিয়েছি এবং প্রয়োজনে আরও বিশদ সরবরাহ করতে পারি।
বোগুমিল

5

সরকারী উত্স থেকে আমার জন্য ঠিক করুন

ডিবাগ বিল্ডসের জন্য ক্র্যাশলিটিক্স অক্ষম করুন

আপনার যদি ডিবাগ বিল্ডগুলির জন্য ক্র্যাশলিটিক্স ক্র্যাশ রিপোর্টিং বা বিটা বিতরণের প্রয়োজন না হয় তবে আপনি এই দুটি পদক্ষেপের মাধ্যমে সম্পূর্ণভাবে প্লাগইনটি অক্ষম করে আপনার ডিবাগ-বিল্ডগুলি নিরাপদে গতি বাড়িয়ে তুলতে পারেন:

প্রথমে এটি আপনার অ্যাপ্লিকেশনটির বিল্ডস্র্যাডলে যুক্ত করুন:

android {
    buildTypes {
        debug {
          // Disable fabric build ID generation for debug builds
          ext.enableCrashlytics = false
          ...

এরপরে, রানটাইমে ক্র্যাশলিটিক্স কিটটি অক্ষম করুন। অন্যথায়, ক্র্যাশলিটিক্স কিট নিম্নলিখিত ত্রুটিটি ফেলে দেবে:

com.crashlytics.android.core.CrashlyticsMissingDependencyException:

This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up`

আপনি নিম্নলিখিত সময়টি দিয়ে কেবল ডিবাগ তৈরির জন্য রানটাইমে কিটটি অক্ষম করতে পারেন:

// Set up Crashlytics, disabled for debug builds
Crashlytics crashlyticsKit = new Crashlytics.Builder()
    .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
    .build();

// Initialize Fabric with the debug-disabled crashlytics.
Fabric.with(this, crashlyticsKit);

5

সমস্যাটি ঘটলে যদি আপনি দুর্ঘটনাক্রমে ক্র্যাশলিটিক্স বিল্ডকনফিগ অন্তর্ভুক্ত করেন - অ্যান্ড্রয়েড স্টুডিও / ইন্টেলিজিজ অটো-আমদানিগুলি করা খুব সহজ।

আমি আমদানি করতাম

import com.crashlytics.android.core.BuildConfig;

আমার নিজের পরিবর্তে

import <package_name>.BuildConfig;


4

আমার জন্য এটা ছিল dataBinding = true। ফ্যাব্রিক গ্রেডেল প্লাগইনটিকে 1.21.0 এ আপগ্রেড করার ফলে সমস্যাটি স্থির হয়েছে: https://twittercommune.com/t/fabric-gradle-plugin-1-21-0-add-support-for-android-databinding-true/57474


দুর্দান্ত পয়েন্ট - এটি ত্রুটির একটি আরও সাম্প্রতিক সংস্করণ। 1.21.0 বা 1.21.1 ব্যবহার করা সাহায্য করবে।
মাইক বোনেল

3

আমার ক্ষেত্রে, আমি একটি "কমনলিব" মডিউলটিতে ফ্যাব্রিক ব্যবহার করছিলাম যা অন্যান্য সমস্ত মডিউলে (অ্যাপ্লিকেশন সহ) নির্ভরতা হিসাবে যুক্ত হয়েছিল। সুতরাং, আমি ব্লক apply plugin: 'io.fabric'পরে যুক্ত ছিল buildscript {}। সুতরাং, আমি দুটি প্লাগইন একসাথে রেখেছি:

apply plugin: 'com.android.library' 
apply plugin: 'io.fabric'

আর সমস্যার সমাধান হয়ে গেল!


1

apply plugin: 'io.fabric'আপনার অ্যাপ্লিকেশন প্রকল্পে যুক্ত করার বিষয়টি নিশ্চিত করুন build.gradle। আমার ক্ষেত্রে, আমি একটি সাধারণ ছিল build.gradleসঙ্গে apply plugin: 'io.fabric'। এটি অ্যাপ্লিকেশন প্রকল্পে সরানো সমস্যার সমাধান করে।


0

যদি এটি অন্য কাউকে সহায়তা করে তবে ক্র্যাশলিটিক্সকে ফ্যাব্রিকে আপগ্রেড করার সময় আমারও একই সমস্যা ছিল। আমার ক্ষেত্রে, প্লাগইনটি ক্র্যাশলাইটিক্স থেকে 2 টি লাইন রেখেছিল যা কাজ করার আগে আমাকে নিজেই সরিয়ে ফেলতে হবে।

গ্রেড ফাইলটিতে, বিল্ডস্ক্রিপ্ট নির্ভরতাগুলির অধীনে, আমাকে ম্যানুয়ালি অপসারণ করতে হয়েছিল:

classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.16.0'

এছাড়াও, নির্ভরতার অধীনে, আমাকে ম্যানুয়ালি অপসারণ করতে হয়েছিল:

compile 'com.crashlytics.android:crashlytics:1.1.13'

0

Build.gradle ফাইলটিতে ক্র্যাশলিটিক্স অক্ষম আছে কিনা তা পরীক্ষা করুন

    debug {
        ext.enableCrashlytics = false
    }

পরিবর্তে ব্যবহার করুন

    debug {
        ext.enableCrashlytics = true
    }

0

আমি উত্তর দিতে দেরি হতে পারে। তবে উপরের সমস্ত উত্তর বাদে এটি আরও একটি কারণ থেকে ঘটতে পারে

আপনি যদি যোগ করতে মিস করেন

apply plugin:'io.fabric'

এটি অদ্ভুত বলে মনে হতে পারে তবে এর ফলে একই সমস্যা দেখা দেবে

এটি আইডিই ব্যবহার করে আমদানি করে ফ্যাব্রিক উইন্ডো থেকে কোড যুক্ত করার পরে ফ্যাব্রিকের মাধ্যমে এটি ডিফল্টরূপে যুক্ত হয় তবে দুর্ঘটনাক্রমে এটি মোছা যায়।


0

অ্যাপ্লিকেশন আইকন মুছে ফেলা ক্রশাইলিটিক্স, কি?

সর্বশেষতম সংস্করণ ইত্যাদির সাহায্যে অনবোর্ডিং টিউটোরিয়ালের উপর ভিত্তি করে আমি সবকিছুই করেছি

এটি বের করার চেষ্টা করে এক ঘন্টা নষ্ট করেছি। দেখা যাচ্ছে যে কেউ context.packageNameঅ্যাপ্লিকেশনটির সংস্থানটি প্রসঙ্গে প্রদত্ত হওয়ার পরিবর্তে অ্যাপ্লিকেশন আইকনের প্যাকেজের নামটি পড়া ভাল ধারণা । এটি এই পদ্ধতিতে সম্পন্ন হয়েছে:

io.fabric.sdk.android.services.common.CommonUtils#getResourcePackageName

এই স্পষ্টত আপ হাতাহাতি যদি আপনি একটি আইকনের করা APK ভিতরে নয়, উদাহরণস্বরূপ ব্যবহার করতে ঘটতে: android:icon="@android:drawable/sym_def_app_icon"। এ সময় সম্ভবত এটি একটি ভাল ধারণা ছিল, তারা কী অদ্ভুত বাগটি ঘিরে কাজ করার চেষ্টা করছিল তা অবাক করে দিয়েছিলেন ?!


-1
<meta-data
    android:name="firebase_crashlytics_collection_enabled"
    android:value="false" /> 

এটিতে যুক্ত করুন AndroidManifest.xml


সমস্যা সমাধানের জন্য আপনার সমাধানটি ক্র্যাশলাইটিক্সকে পুরোপুরি অক্ষম করা?
জেজেজে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.