我最近为客户开发了一款应用,现在必须在Crashlytics上分享它。 我过去曾多次这样做,但有了这个应用程序,就会出现问题。
当我在Crashlytics Studio的插件上传我的应用时,没有错误。电子邮件已正确发送给测试人员。
但在安装结束时,它显示"包裹似乎已损坏" 。
这是我第一次看到这个,我不知道该怎么做。
我尝试使用所有这类APK: - debug(unsigned) - 释放(未签名) - 发布(签名)
它都不起作用。
这是我的build.gradle:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
// These docs use an open ended version so that our plugin
// can be updated quickly in response to Android tooling updates
// We recommend changing it to the latest version from our changelog:
// https://docs.fabric.io/android/changelog.html#fabric-gradle-plugin
classpath 'io.fabric.tools:gradle:1.24.1'
}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
maven { url "https://jitpack.io" }
}
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.xxxxxxx"
minSdkVersion 15
targetSdkVersion 26
versionCode 3
versionName "0.1.3"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
renderscriptSupportModeEnabled = true
}
buildTypes {
release {
minifyEnabled = true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
/**
* SUPPORT LIBS
*/
implementation 'com.android.support:appcompat-v7:26.0.2'
implementation 'com.android.support:recyclerview-v7:26.0.2'
implementation 'com.android.support:design:26.0.2'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:support-vector-drawable:26.0.2'
/**
* KOTLIN
*/
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
/**
* UNIT TESTS
*/
testImplementation 'junit:junit:4.12'
androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.1', {
exclude group: 'com.android.support', module: 'support-annotations'
})
/**
* HTTP
*/
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation "com.squareup.retrofit2:converter-gson:2.3.0"
implementation "com.squareup.retrofit2:adapter-rxjava:2.3.0"
implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0'
/**
* INJECTION LIB
*/
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
/**
* COMPONENT LIBS
*/
implementation('com.mikepenz:fastadapter:2.6.3@aar') {
transitive = true
}
implementation 'com.mikepenz:fastadapter-commons:2.6.3@aar'
implementation 'com.mikepenz:fastadapter-extensions:2.6.3@aar'
/**
* IMAGE LOADING/CACHING/EDITING LIBS
*/
implementation 'com.github.bumptech.glide:glide:4.1.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1'
implementation 'com.makeramen:roundedimageview:2.3.0'
/**
* PLAYERS VIDEO/MUSIC
*/
implementation 'com.google.android.exoplayer:exoplayer:r2.0.0'
implementation 'com.dailymotion.dailymotion-sdk-android:sdk:0.1.12'
/**
* EVENTBUS
*/
implementation 'org.greenrobot:eventbus:3.0.0'
/**
* Overscroll
*/
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.3'
implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.3'
/**
* FABRIC/CRASHLYTICS
*/
implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true
}
}
我该如何解决?
答案 0 :(得分:5)
从Android Studio 3.0开始,如果我尝试通过用户界面上传apk,我会遇到完全相同的问题。
现在,您必须使用命令行上传apk,如documentation所示。
./gradlew assembleDebug crashlyticsUploadDistributionDebug
我希望这会有所帮助!
答案 1 :(得分:2)
答案 2 :(得分:1)
我回答了类似的问题here
对我来说,解决方案是将gradle从版本3.0.0(Android Studio 3引入)降级到2.3.3(之前的版本)。 我通过在项目.gradle文件中替换这一行来实现这一点:
buildscript {
repositories {
...
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
...
}
}
使用:
buildscript {
repositories {
...
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
...
}
}
在完成清洁和构建之后,我能够将我的应用程序上传到Beta并安装它没有任何问题。