アプリはデバッグ ビルドで正常に動作し、アプリの機能をテストした各デバイスで Crashlytics の例外が報告されていることを確認できます。ただし、Jenkins を使用してリリース ビルドを取得すると、次のようになります。
a. アプリは空白の起動画面で動かなくなります。
b. 「アプリケーションが停止しました」ダイアログを取得します。
リリース ビルドの実行中にいくつかの logcat メッセージが見つかりました。
最初:次の例外をダンプします
09-30 09:49:05.561: I/Crashlytics(5696): Initializing Crashlytics 1.0.4.15
09-30 09:49:05.591: E/Crashlytics(5696): .
09-30 09:49:05.591: E/Crashlytics(5696): . | |
09-30 09:49:05.591: E/Crashlytics(5696): . | |
09-30 09:49:05.591: E/Crashlytics(5696): . | |
09-30 09:49:05.591: E/Crashlytics(5696): . \ | | /
09-30 09:49:05.591: E/Crashlytics(5696): . \ /
09-30 09:49:05.591: E/Crashlytics(5696): . \ /
09-30 09:49:05.591: E/Crashlytics(5696): . \/
09-30 09:49:05.591: E/Crashlytics(5696): .
09-30 09:49:05.591: E/Crashlytics(5696): Something is missing! Find it here:
09-30 09:49:05.591: E/Crashlytics(5696): http://www.crashlytics.com/api/v1/[API_KEY]/android/confirm/[PACKAGE_NAME]
09-30 09:49:05.591: E/Crashlytics(5696): .
09-30 09:49:05.591: E/Crashlytics(5696): . /\
09-30 09:49:05.591: E/Crashlytics(5696): . / \
09-30 09:49:05.591: E/Crashlytics(5696): . / \
09-30 09:49:05.601: E/Crashlytics(5696): . / | | \
09-30 09:49:05.601: E/Crashlytics(5696): . | |
09-30 09:49:05.601: E/Crashlytics(5696): . | |
09-30 09:49:05.601: E/Crashlytics(5696): . | |
09-30 09:49:05.601: E/Crashlytics(5696): .
09-30 09:49:05.601: D/AndroidRuntime(5696): Shutting down VM
09-30 09:49:05.601: W/dalvikvm(5696): threadid=1: thread exiting with uncaught exception (group=0x40ad8228)
09-30 09:49:05.601: E/AndroidRuntime(5696): FATAL EXCEPTION: main
09-30 09:49:05.601: E/AndroidRuntime(5696): java.lang.RuntimeException: Unable to start activity ComponentInfo{[PACKAGE_NAME]/[ACTIVITY_NAME]}: com.crashlytics.android.CrashlyticsMissingDependencyException:
2 番目: https://settings.crashlytics.com/spi/v1/platforms/android/apps/[APP_PACKAGE_NAME]/settingsから設定を取得できませんでした。[class org.json.JSONException: Type java.lang.String の Value Invalid は JSONObject に変換できません]
3 番目: 多くの場合、マニフェストに API_KEY がないことを訴えます。ただし、マニフェストには既に存在し、デバッグ ビルドでは正常に動作しています。
<meta-data android:name="com.crashlytics.ApiKey" android:value="[crashlytics_api_key]"/>
<application>
タグの内側。
私も次のことをしました:
例外トレースに記載されている URL に従いましたが、crashlytics/downloads ページにリダイレクトされます。おそらく権限がありません。
build.xml に追加
<import file="./ant_tasks/crashlytics_build.xml"/>
され、次のソース ファイルが含まれています: crashlytics_build_base.xml、crashlytics_build.xml、crashlytics-devtools.jar、crashlytics.jarOrder & Export / .classpath に crashlytics.jar ファイルをエクスポートしました。
<classpathentry exported="true" kind="lib" path="libs/crashlytics.jar"/>
それでも役に立ちません。
Crashlytics.start(getApplicationContext());
Application.onCreate() 内でコメントを外すと
デバッグ ビルドとリリース ビルドの両方が正常に動作します。もちろん、クラッシュ レポートは表示されません。
@Override
public void onCreate() {
super.onCreate();
Crashlytics.start(getApplicationContext());
}
誰かが同様の問題に遭遇した場合は、解決を手伝ってください。よろしくお願いします。
私の理解のために:
- Crashlytics には、デバッグ ビルドとリリース ビルド用に異なる API_KEY がありますか?
- crashlytics ビルド ファイルを使用する必要さえありますか?
- リリース ビルドに欠けているものは何ですか?