이 CrashlyticsMissingDependencyException을 어떻게 해결할 수 있습니까? 18887-18887/? E/Fabric﹕ . 02-08 22:18:00.935 18887-18887/?

한동안 최신 Crashlytics (Fabric 통합)를 사용하고 있습니다. 하지만 최근에 Crashlytics 구성에 대해 아무것도 변경하지 않았지만 종속성 누락으로 인해 다음과 같은 충돌 오류가 발생했습니다.

어떤 생각?

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)



답변

현재 유일한 해결 방법은 앱을 게시해야하는 경우 (예 : 저처럼) 동적 버전 번호를 정적 버전으로 변경하는 것입니다.

[...]

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

[...]

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

[...]

편집하다:

Fabric SDK의 업데이트 된 버전이 게시되었습니다. 다음과 같이 줄을 변경하여 얻을 수 있습니다.

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


답변

실제로 Fabric / Crashlytics를 설치하기 전에 다음 코드를 추가했습니다.

debug {
    ext.enableCrashlytics = false
}

Crashlytics로 처음 실행하기 전에 제거하면 문제가 해결되었습니다. 첫 번째 실행 후에는 더 이상 문제가 발생하지 않습니다.


답변

나는 이것을 gradle에서 주석 처리했습니다.

apply plugin: 'io.fabric'

주석을 제거해야했습니다.

또는없는 경우 추가하십시오!


답변

플러그인 버전을 다음과 같이 지정하는 것 같습니다.

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

문제가있는 1.15.1을 선택합니다.

메이저 및 마이너를 이전으로 지정 1.14하는 것이 안정된 것 같습니다.

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


답변

플러그인 업데이트 후에도 동일한 문제가 발생했습니다. 해결하려면 AndroidManifest.xml에서 제거해야합니다.

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

fabric.properties에 추가하십시오.

apiSecret=API_SECRET_KEY
apiKey=YOUR_SECRET_KEY

최신 정보:

이제 다음을 사용해야합니다.

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


답변

다음과 같이 디버그 중에 비활성화 기능을 사용하는 경우

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

crashlytics 버전을 업데이트하면 어떻게 되나요?

Fabric.with(this, crashlyticsKit); 

로 바뀌었다

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

따라서 다시 crashlyticskit으로 변경하십시오. 이 작업을 올바르게 수행하고 있는데도 오류가 계속 나타나면 다음이 있는지 확인하십시오.

debug {

      ext.enableCrashlytics = false
 }

Android {buildtypes {}}에서


답변

Crashlytics의 Mike입니다. 이 동작에 대한 수정 사항이 포함 된 업데이트 버전 (1.15.2)을 오늘 일찍 출시했습니다. 실행하는 경우 :

./gradlew assemble --refresh-dependencies

최신 버전을 가져올 것입니다. 여기에서 수정 사항에 대한 자세한 내용을 볼 수도 있습니다.