2014-10-10 23 views
12

Tôi hiện đang triển khai tập lệnh chuyển đổi Khóa API được đề xuất here, ngoại trừ với các loại xây dựng thay vì hương vị. Build.gradle của tôi trông giống như sau:Crashlytics không tìm thấy Khóa API trong crashlytics.properties khi chạy

... 
buildTypes { 
    debug { 
     ... 
     set("crashlyticsApiKey", "API_KEY_1") 
     set("crashlyticsApiSecret", "API_SECRET_1") 
    } 
    release { 
     ... 
     set("crashlyticsApiKey", "API_KEY_2") 
     set("crashlyticsApiSecret", "API_SECRET_2") 
    } 
} 
... 
productFlavors{...} 
... 
File crashlyticsProperties = new File("${project.projectDir.absolutePath}/crashlytics.properties") 

applicationVariants.all { variant -> 
    variant.productFlavors.each { flavor -> 
     def variantSuffix = variant.name.capitalize() 
     def generateResourcesTask = project.tasks.getByName("crashlyticsGenerateResources${variantSuffix}") 
     def generatePropertiesTask = task("crashlyticsGenerateProperties${variantSuffix}") << { 
      Properties properties = new Properties() 
      println "...copying apiKey for ${variant.name}" 
      properties.put("apiKey", variant.buildType.crashlyticsApiKey) 
      println "...copying apiSecret for ${variant.name}" 
      properties.put("apiSecret", variant.buildType.crashlyticsApiSecret) 
      properties.store(new FileWriter(crashlyticsProperties), "") 
     } 
     generateResourcesTask.dependsOn generatePropertiesTask 
     def cleanResourcesTask = project.tasks.getByName("crashlyticsCleanupResourcesAfterUpload${variantSuffix}") 
     cleanResourcesTask.doLast { 
      println "...removing crashlytics.properties" 
      crashlyticsProperties.delete() 
     } 
    } 
} 
... 

Tệp gradle xây dựng thành công và crashlytics.properties cập nhật thông tin chính xác theo loại bản dựng. Phương pháp sử dụng crashlytics.properties này được đề xuất here và dường như hoạt động mà không có bất kỳ cập nhật nào khác ngoài việc bao gồm các phụ thuộc trong tệp gradle. Tuy nhiên, khi Crashlytics.start(this) được gọi từ các hoạt động chính, tôi nhận được một ngoại lệ thời gian chạy:

java.lang.RuntimeException: Unable to create application com.lookout.LookoutApplication: java.lang.IllegalArgumentException: Crashlytics could not be initialized, API key missing from AndroidManifest.xml. Add the following tag to your Application element 
<meta-data android:name="com.crashlytics.ApiKey" android:value="YOUR_API_KEY"/> 

Tước nó xuống vào một tập tin crashlytics.properties tĩnh (tức là loại bỏ các script động trong file gradle và chỉ có một apiKey và apiSecret trong crashlytics.properties) tạo ra cùng một lỗi, mặc dù nó xây dựng thành công.

Có thay đổi nào đối với tệp AndroidManifest hoặc tệp build.gradle mà tôi nên thực hiện để trỏ nó tới crashlytics.properties không?

Trả lời

1

Mặc dù đây không phải là câu trả lời cho câu hỏi ban đầu (vì tính năng Chạy tức thì không tồn tại trong năm 2014), bạn có thể thấy rằng Chạy tức thì có thể gây ra sự cố. quá trình của tôi là:

  • Install Vải Plugin
  • Tạo mã Crashlytics (bao gồm khóa API trong manifest)
  • Đổi thành fabric.properties tập tin
  • Dành một giờ cố gắng tìm ra lý do tại sao nó không hoạt động
  • Disable tức thì Run -> Rebuild -> Cài đặt -> thành công

tôi đang trên Android Studio 2.0.0-beta6. Điều này có thể sẽ được giải quyết trong tương lai, nhưng đây là tài nguyên duy nhất tôi có thể tìm thấy trực tuyến với cùng một vấn đề vì vậy hy vọng tôi có thể tiết kiệm cho người khác mà giờ.

+1

Tắt InstantR un cố định vấn đề cho tôi. Ước gì tôi tìm thấy bài đăng này trước khi dành một giờ thử lời tiên tri. – Soumya

8

Hoạt động tốt với:

# Fabric properties file: app/fabric.properties 
apiSecret=xx68f6074dxxxxxc11dxxx97c172e8ebf0 
apiKey=xxxe76c4xxxx97e8cxxxx0135e9d46f5a2xxx 

Thêm vào .gitignore (đối với các dự án mã nguồn mở)

BỎ nhập vào AndroidManifest.xml:

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

tài liệu Oficial: https://docs.fabric.io/android/fabric/settings/working-in-teams.html#android-projects

+0

Không hoạt động trên trang của tôi với fabric.properties. Vẫn nhận được thông báo rằng vải không thể được khởi tạo do thiếu mục nhập biểu hiện – CyberpunkDreams

Các vấn đề liên quan