2015-11-03 93 views
14

我想弄清楚如何從面料中使用Crashlytics來製作我的React Native Android APP。我遵循Fabric主頁上的步驟,並在build.gradle文件中添加了一些行。但構建總是崩潰。如何爲我的React Native Android應用程序使用Crashlytics?

使用Crashlytics進行React Native Android和Crashlytics對於使用Android Studio和Java的Native Android開發有沒有區別?

+0

我必須在某個時候做到這一點,所以很好奇你發現了什麼。 –

+0

你有沒有發現這可以如何工作? – BigPun86

回答

9

我得到了它在某些方面的工作,但它可能不會是完美的解決方案......

1:添加面料/ crashlytics到您的應用程序/的build.gradle - 文件 (我didn't在我的應用程序的buildscript /的build.gradle所以我只是包括它,但我不知道這是好....)

buildscript { 
    repositories { 
    jcenter() 
    maven { url 'https://maven.fabric.io/public' } 
    } 

    dependencies { 
    classpath 'com.android.tools.build:gradle:1.5.0' 
    // The Fabric Gradle plugin uses an open ended version to react 
    // quickly to Android tooling updates 
    classpath 'io.fabric.tools:gradle:1.+' 
    } 
} 

// Add this directly under: apply plugin: "com.android.application" 
apply plugin: 'io.fabric' 

// and this directly under: apply from: "react.gradle" 
repositories { 
    jcenter() 
    maven { url 'https://maven.fabric.io/public' } 
} 

// Last but not least add Crashlytics Kit into dependencies 
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
    transitive = true 
} 

2:最重要的,因爲它是無處提及(或者我沒有在任何地方找到它),將Crashlytics和Fabric導入MainActivity:

import com.crashlytics.android.Crashlytics; 
import io.fabric.sdk.android.Fabric; 

3:在你的onCreate - 添加方法:

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

當......你這樣做,你將至少獲得其中由本地代碼(Java代碼的)而造成Crashreports。由JS引起的崩潰 - 語法或類似不會被通知。在那裏你會得到已知的RedBox:P

祝你好運!

+0

我認爲使用[NativeModuleCallExceptionHandler](https://github.com/facebook/react-native/pull/4782#issuecomment-165056536)也是記錄JS異常消息的方式。 –

+0

我將在接下來的幾天嘗試...謝謝 – BigPun86

+0

我收到以下錯誤:/ 錯誤 - Crashlytics開發工具錯誤。 java.lang.IllegalArgumentException:Crashlytics發現無效的API密鑰:null。 檢查Crashlytics插件以確保應用程序已成功添加! 聯繫[email protected]尋求幫助。 –

4

對於發生反應原住民你必須輸入捆綁,並把自己的onCreate方法類似這樣的新版本:

// Added Bundle to use onCreate which is needed for our Fabrics workaround 
import android.os.Bundle; 

.......... 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

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

} 

不知道這是好還是不好,因爲他們已經刪除了的onCreate但它工作我

+0

你是什麼文件放置在? –

+1

要回答我自己的問題,它進入MainActivity.java –

0

試試這個:https://fabric.io/kits/android/crashlytics/install

總結了所有你需要在你的Android安裝到編輯好這些文件。 對於AndroidManifest.xml文件,請將您的實際API密鑰替換爲android:value密鑰(例如下面的內容)。記得從您的組織設置中獲取您的API密鑰...... 1.登錄到https://fabric.io/settings/organizations並2.單擊構建密鑰。

 <meta-data 
     android:name="io.fabric.ApiKey" 
     android:value="<api key here>" 
    /> 
+0

是你使用這個API密鑰?感謝分享:D – BigPun86

+0

哈哈,感謝您的支持! –

相關問題