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

Я пытаюсь загрузить свой 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"
            }
        }
    }
}

Я использую Command as - gradle assemblerelease uploadsnapshot

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

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

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

Поместите эту строку под

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
}

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

0 голосов
/ 04 сентября 2018

Новый 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...