Подтвердить что ты не робот

Как настроить gradle и студию android для создания сборки релиза?

Я хочу создать приложение для Android и начать подписывать его. Для этого мне нужно иметь версию apk версии. Документация Google предлагает только Eclipse и ant способы создания релизов: http://developer.android.com/tools/publishing/app-signing.html#releasecompile

Однако я не могу найти, как заставить gradle построить версию apk. build.gradle не дает никаких намеков. gradlew tasks предполагает, что нет установленной версии Release configuration, но существует версия удаления:

Install tasks
-------------
installDebug - Installs the Debug build
installTest - Installs the Test build for the Debug build
uninstallAll - Uninstall all applications.
uninstallDebug - Uninstalls the Debug build
uninstallRelease - Uninstalls the Release build
uninstallTest - Uninstalls the Test build for the Debug build

Мой build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:support-v4:13.0.+'
    compile files('libs/android-support-v4.jar')
    compile project(":libraries:ActionBarSherlock")
    compile project(":libraries:CollabsibleSearchMenu")
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 16
    }
}

Что мне не хватает?

4b9b3361

Ответ 1

В последней версии Android Studio вы можете просто сделать:

./gradlew assembleRelease

или aR для краткости. Это произведет неподписанный выпуск apk. Создание подписанного apk может быть сделано аналогичным образом или вы можете использовать Build → Generate Signed Apk в Android Studio.

Смотрите документы здесь

Вот мой build.gradle для справки:

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.5.+'
  }
}
apply plugin: 'android'

dependencies {
  compile fileTree(dir: 'libs', include: '*.jar')
}

android {
compileSdkVersion 17
buildToolsVersion "17.0.0"

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }

    // Move the tests to tests/java, tests/res, etc...
    instrumentTest.setRoot('tests')

    // Move the build types to build-types/<type>
    // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
    // This moves them out of them default location under src/<type>/... which would
    // conflict with src/ being used by the main source set.
    // Adding new build types or product flavors should be accompanied
    // by a similar customization.
    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')

}

buildTypes {
    release {

    }
}

Ответ 2

  1. откройте панель Build Variants, обычно расположенную вдоль левой нижней части окна:

Build Variants

  1. установите debug на release
  2. shift+f10 беги !!

Затем Android Studio выполнит задачу assembleRelease и установит xx-release.apk на ваше устройство.

Ответ 3

Не нужно обновлять gradle для создания приложения выпуска в студии Android. Если вы были пользователем eclipse, вам будет так легко. Если вы новичок, то выполните шаги

1: перейдите в раздел "Сборка" в разделе панели инструментов. 2: Выберите опцию "Создать подпись APK...". enter image description here

3: заполните открытую форму и идите дальше 4: если у вас уже есть .keystore или .jks, тогда выберите этот файл, введите свой пароль и псевдоним и соответствующий пароль. 5: Или у вас нет файла .keystore или .jks, затем нажмите кнопку "Создать новый...", как показано на рис. 1, затем заполните форму. enter image description here

Выше был процесс создания вручную. Если вы хотите, чтобы студия Android Android автоматически подписывала ваше приложение

В Android Studio вы можете настроить свой проект для автоматической подписки APK в процессе сборки:

В браузере проекта щелкните правой кнопкой мыши на своем приложении и выберите "Открыть настройки модуля". В окне "Структура проекта" выберите модуль приложения в разделе "Модули". Перейдите на вкладку "Подписание". Выберите файл хранилища ключей, введите имя для этой конфигурации подписи (так как вы можете создать несколько) и введите необходимую информацию. enter image description here Рисунок 4. Создание конфигурации подписи в Android Studio.

Перейдите на вкладку Типы построек. Выберите сборку выпуска. В разделе "Настройка подписки" выберите конфигурацию подписи, которую вы только что создали. enter image description here Рисунок 5. Выберите конфигурацию подписи в Android Studio.

4: Самое важное, что делает debuggable = false в gradle.

    buildTypes {
        release {
           minifyEnabled false
          proguardFiles getDefaultProguardFile('proguard-  android.txt'), 'proguard-rules.txt'
        debuggable false
        jniDebuggable false
        renderscriptDebuggable false
        zipAlignEnabled true
       }
     }

посетите дополнительную информацию developer.android.com

Ответ 4

Чтобы активировать задачу installRelease, вам просто нужно signingConfig. Это все.

Из http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Android-tasks:

Наконец, плагин создает задачи установки и удаления для всей сборки типы (отладка, выпуск, тест), если они могут быть установлены ( требует подписания).

Вот что вы хотите:

Install tasks
-------------
installDebug - Installs the Debug build
installDebugTest - Installs the Test build for the Debug build
installRelease - Installs the Release build
uninstallAll - Uninstall all applications.
uninstallDebug - Uninstalls the Debug build
uninstallDebugTest - Uninstalls the Test build for the Debug build
uninstallRelease - Uninstalls the Release build   <--- release

Вот как получить задачу installRelease:

Пример build.gradle:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

apply plugin: 'com.android.application'

android {
  compileSdkVersion 22
  buildToolsVersion '22.0.1'

  defaultConfig {
    applicationId 'demo'
    minSdkVersion 15
    targetSdkVersion 22
    versionCode 1
    versionName '1.0'
  }

  signingConfigs {
      release {
          storeFile <file>
          storePassword <password>
          keyAlias <alias>
          keyPassword <password>
      }
  }

  buildTypes {
    release {
        signingConfig signingConfigs.release
    }
  }
}