Как опубликовать артефакты в Gradle 4.4 в Android Studio (Загрузить APK на Nexus)?

Я пытаюсь загрузить свой APK в хранилище Nexus. Ниже код работает нормально, пока я не изменил версию Gradle

от

classpath 'com.android.tools.build:gradle:2.3.3' distributionUrl=https://services.gradle.org/distributions/gradle-3.3-all.zip mCompileSdkVersion=23 mBuildToolsVersion='25.0.0'

к

classpath 'com.android.tools.build:gradle:3.1.0' distributionUrl=https://services.gradle.org/distributions/gradle-4.4-all.zip mCompileSdkVersion=27 mBuildToolsVersion='27.0.0'

После изменения версий тот же код не работает, я не могу понять, где я нашел ошибку, Терминал не показывает сообщение об ошибке, но мой APK не загружен в указанном месте

Ниже приведена текущая конфигурация моего файла приложения build.gradle.

apply plugin: 'com.android.application'
apply plugin: 'maven'    

task uploadRelease (type: Upload){
    configuration = project.getConfigurations().getByName('archives');
    repositories {
        mavenDeployer {
            repository(  url: "http://XXXXXXXX:8081/nexus/XXXXXXXX/repositories/releases"  ) {
                authentication(userName: "MyuserName", password: "Mypassword")
            }
            pom.project {
                version "${android.defaultConfig.versionName}"
                artifactId "Collection"
                name "xxxxxxxx"
                groupId "com.xxxxxxxx.mobile.xxxxxxxx.collections"
            }
        }
    }
}

task uploadSnapshot (type: Upload){
    configuration = project.getConfigurations().getByName('archives');

    repositories {
        mavenDeployer {
            repository(  url: "http://XXXXXXXX:8081/nexus/XXXXXXXX/repositories/snapshots"  ) {
                authentication(userName: "MyuserName", password: "Mypassword")
            }
            pom.project {
                version "${android.defaultConfig.versionName}-SNAPSHOT"
                artifactId "Collection"
                name "Collection"
                groupId "com.xxxxxxxx.mobile.xxxxxxxx.collections"
            }
        }
    }
}

Я использую Команду как - gradle assemblerelease uploadsnapshot

создать и загрузить APK, но он не работает для gradle 4.4 Пожалуйста, дайте мне знать, что пошло не так

2 ответа

Новый Android Gradle Plugin версии 3.+ переместить apk по другим путям по сравнению с 2.2.3.

Некоторые ошибки могут произойти в нижней строке

configuration = project.getConfigurations().getByName('archives');

использование gradle assemblerelease uploadsnapshot --debug --info --stacktrace собрать больше информации и проанализировать журналы ошибок.

Старое расположение apk

build/outputs/apk/*.apk

расположение apk для AGP 3.x

build/outputs/apk/<flavour>/<buildtype>/<name>-<buildtype>.apk 

так

def apk = file('build/outputs/apk/release/iMobility-release.apk')
artifacts {
    archives apk
}

Это должно переписать пути архивов с правильным местоположением apk.

Не фактический ответ, но то, что работа для меня

Поместите эту строку ниже вашего

task uploadSnapshot (type: Upload){
    configuration = project.getConfigurations().getByName('archives');

    repositories {
        mavenDeployer {
            repository(  url: "http://XXXXXXXX:8081/nexus/XXXXXXXX/repositories/snapshots"  ) {
                authentication(userName: "MyuserName", password: "Mypassword")
            }
            pom.project {
                version "${android.defaultConfig.versionName}-SNAPSHOT"
                artifactId "Collection"
                name "Collection"
                groupId "com.xxxxxxxx.mobile.xxxxxxxx.collections"
            }
        }
    }
 } 

def apk = file('build/outputs/apk/release/iMobility-release.apk')
artifacts {
    archives apk
}

Кто-нибудь может объяснить это почему? и есть лучший вариант, чем этот?

Другие вопросы по тегам