2015-06-05 27 views
10

में NdkOut और NdkLibsOut के मानों को मैंने अपने ऐप में क्रैशलिटिक्स, Fabric एकीकृत किया है, एसडीके से संबंधित क्रैश सफलतापूर्वक रिपोर्ट किए गए हैं।एंड्रॉइड क्रैशलिटिक्स एनएनडी; build.gradle

एनएनडीके भाग के लिए, मैंने ब्लॉग से निर्देशों का पालन किया है; The Wait is Over: Launching Crashlytics for Android NDK, लेकिन एनडीके दुर्घटनाओं की सूचना नहीं दी जा रही है। मेरे संदेह है, क्योंकि अन्य भागों पर्याप्त रूप से स्पष्ट कर रहे हैं, मैं सही रास्ते androidNdkOut और androidNdkLibsOut के लिए प्रदान नहीं कर रहा हूँ, के रूप में में दिखाया गया है:

enter image description here

संदेह और सवाल मेरे build.gradle में है, ये रहा। https://fabric.io/downloads/gradle/ndk - ..

crashlytics { 

    enableNdk true 
    androidNdkOut //what would be the obj here? 
    androidNdkLibsOut 'src/main/jniLibs' //path for my jni libraries 

} 

मुझे पता है अगर मैं कोड

+0

मैं 100% निश्चित नहीं हूं, लेकिन मुझे लगता है कि इस क्रैशलिटिक्स में आपके निर्माण प्रक्रिया के हिस्से के रूप में सीओ कोड को सीएस संकलित करना है। इससे "डीबग और रिलीज बाइनरी" उत्पन्न हो जाएंगी जो मुझे लगता है कि उन फ़ोल्डरों में रखा गया है। यदि आप प्री-कंपाइल का उपयोग कर रहे हैं। इसलिए पुस्तकालय मुझे लगता है कि यह काम नहीं करेगा। यहां देखें: https://dev.twitter.com/crashlytics/android/ndk "डीबग और बाइनरी रिलीज़ करने के पथों को नियंत्रित करना" – GaRRaPeTa

+0

मैं वास्तव में डीबग के लिए '।/Gradle' के माध्यम से उनको बना देता हूं, कृपया संकेत दें कि कोई समस्या नहीं है – user2450263

+0

यहां एक ही मुद्दा है, क्या यह पूर्व-संकलित इतनी libs के साथ काम करेगा? – Anton

उत्तर

9

संपादित करें/अपडेट 7 जुलाई, 2017

इस उत्तर के लिए एक अद्यतन के साथ कपड़ा टीम यहां से मैट - हम सिर्फ कपड़ा Gradle प्लगइन संस्करण 1.23.0 जो स्वचालित रूप से उचित देशी का पता लगाने के लिए समर्थन शामिल जारी किया लाइब्रेरी पथ जब आप externalNativeBuild डीएसएल का उपयोग ग्राडल संस्करण 2.2.0+ के लिए एंड्रॉइड प्लगइन के साथ कर रहे हैं, तो अब आपको androidNdkOut और androidNdkLibsOut गुण सेट करने की आवश्यकता नहीं है। यह दोनों सीएमके और ndk-build दोनों के साथ काम करेगा। अधिक जानकारी की जाँच करें: https://docs.fabric.io/android/crashlytics/ndk.html#specifying-the-path-to-debug-and-release-binaries


मैं Crashlytics/Fabric समर्थन से सहायता प्राप्त करने, them..this जवाब शुक्रिया अदा करने के बाद समस्या का समाधान हो सकता है।

सबसे पहले, के लिए

crashlytics { 

    enableNdk true 
    androidNdkOut //what would be the obj here? 
    androidNdkLibsOut 'src/main/jniLibs' //path for my jni libraries 

} 
मेरे ऐप की build.gradle के लिए

, यह किया जाना चाहिए था:

crashlytics { 
    enableNdk true 
    androidNdkOut 'src/main/jniLibs' 
    androidNdkLibsOut 'src/main/jniLibs' 
} 

androidNdkOut वह जगह है जहाँ अपने डिबग बाइनरी स्थित हैं। यह को 'src/main/obj' पर डिफ़ॉल्ट करता है लेकिन आप क्रैशलीटिक्स {} में सेट कर सकते हैं यदि यह आपकी प्रोजेक्ट में अलग है।

एक लिंक है जो एक ही पर उपयोगी जानकारी शामिल हैं: crashlytics knowledgebase; Missing line numbers in native crashes

एक छोटा सा लेकिन बहुत उपयोगी हिस्सा --stacktrace विकल्प के साथ uploadReleaseSymbols तरह आदेशों चल रहा था। दुर्घटना रिपोर्ट प्राप्त नहीं करने के लिए मेरे पक्ष में उल्लेख (इसके रिलीज प्रतीकों को अपलोड करना) भी उल्लेख किया गया था।

5

के किसी अन्य भाग से पोस्ट होने चाहिए इस गाइड का उपयोग बताएं। हमने दोनों क्षेत्रों को खाली रखा है (androidNdkOut और NdkLibsOut)

+1

पोस्ट करूँगा, वे निश्चित रूप से किसी को यह नहीं ढूंढना चाहते हैं। –

+0

एक आधिकारिक अभी तक गुप्त मार्गदर्शिका, ठंडा .. –

3

इसी तरह की समस्या थी: मुझे Fabric.with() पर CrashlyticsNdk किट जोड़ना पड़ा।

Fabric fabric = new Fabric.Builder(context) 
    .kits(new Twitter(authConfig), new Crashlytics(), new CrashlyticsNdk()) 
    .debuggable(true) 
    .build(); 
Fabric.with(fabric); 

आप androidNdkOut, androidNdkLibsOut इस तरह से देख सकते हैं।

$ ./gradlew -d clean assemble{Flavor} | grep ndk-build 

और आप NDK_OUT और NDK_LIBS_OUT मिल जाएगा।

+3

हे, इस पर सिर्फ एक अपडेट, यह आदेश मैक पर काम नहीं करता है, क्रैशलिटिक्स के साथ और मैंने 'फैब्रिक.with (यह, नया क्रैशलिटिक्स(), नया क्रैशलिटिक्स एनडीके()); ', यह काम करता है – user2450263

संबंधित मुद्दे