如何在android项目中制作不同的apk文件?

时间:2017-06-16 11:29:09

标签: android package apk

我想在一个项目中创建不同的apk文件。

在android studio中,我重构包路径,并更改清单包。

并更改applicationId,但它仍然存在问题。

当我已经安装了一个并安装另一个更改包名称的apk文件时,它会在一个之前要求卸载。

我不知道如何制作具有另一个包名称的不同apk文件。

我想在一个项目中安装两个apk文件进行测试。

这是我的build.gradle。

// This file includes polyfills needed by Angular 2 and is loaded before
// the app. You can add your own extra polyfills to this file.
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/set';
import 'core-js/es6/reflect';

import 'core-js/es7/reflect';
import 'zone.js/dist/zone';

这是我的manifest.xml

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.comsol.com_dev.fourslink"
        minSdkVersion 19
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile('com.android.support:appcompat-v7:25.+') { exclude module: 'commons-io' }
    compile('com.android.support.constraint:constraint-layout:1.0.2') { exclude module: 'commons-io' }
    testCompile 'junit:junit:4.12'
    compile('com.mobsandgeeks:android-saripaar:2.0.3') { exclude module: 'commons-io' }
    compile('com.koushikdutta.ion:ion:2.1.9') { exclude module: 'commons-io' }
    compile('gun0912.ted:tedpermission:1.0.2') { exclude module: 'commons-io' }
    compile('com.android.support:design:22.+') { exclude module: 'commons-io' }
    compile('com.estimote:sdk:0.13.0') { exclude module: 'commons-io' }
    compile('jp.wasabeef:glide-transformations:2.0.0') { exclude module: 'commons-io' }
    compile('com.afollestad:easyvideoplayer:0.3.0') { exclude module: 'commons-io' }
    compile('com.github.jrvansuita:PickImage:v2.0.0') { exclude module: 'commons-io' }
    compile('com.amazonaws:aws-android-sdk-s3:2.+') { exclude module: 'commons-io' }
    compile('com.mindorks:placeholderview:0.6.0') { exclude module: 'commons-io' }
    compile('com.tsengvn:Typekit:1.0.0') { exclude module: 'commons-io' }
    compile('com.github.esafirm:RxDownloader:1.0.1') { exclude module: 'commons-io' }
    compile('com.mlsdev.rximagepicker:library:1.1.2') { exclude module: 'commons-io' }
    compile('io.github.jeancsanchez.photoviewslider:photoviewslider:1.2.0') {
        exclude module: 'commons-io'
    }
    compile('com.nononsenseapps:filepicker:3.1.0') { exclude module: 'commons-io' }
    compile('com.gjiazhe:scrollparallaximageview:1.0') { exclude module: 'commons-io' }
    compile('com.droidninja:filepicker:1.0.8') { exclude module: 'commons-io' }
    compile('com.android.support:multidex:1.0.0') { exclude module: 'commons-io' }
    compile 'com.google.guava:guava:19.0'
    compile 'com.itextpdf:itextpdf:5.5.11'

    compile 'org.altbeacon:android-beacon-library:2.7.1'

    compile 'com.squareup:otto:1.3.7'

    compile 'net.protyposis.android.mediaplayer:mediaplayer:4.3.0'
    compile 'net.protyposis.android.mediaplayer:mediaplayer-dash:4.3.0'

    compile 'com.github.rtoshiro.fullscreenvideoview:fullscreenvideoview:1.1.2'

    compile 'com.github.halilozercan:BetterVideoPlayer:1.1.0'

}

在那里,我将comsol改为comsec。但是覆盖它。

并在strings.xml中,

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.comsol.com_dev.fourslink">

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.BROADCAST_STICKY"/>
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="false"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="android:allowBackup"
        >

        <activity android:name=".Activity.SplashActivity">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>

只有这一点,它改变了ThreesLink

如果您对此有任何想法,请帮助我。

我不知道为什么会覆盖它。

包名称不同,它会安装其他。

2 个答案:

答案 0 :(得分:0)

在gradle文件中:

android {
    productFlavors {
        dev {
            applicationId "your.com.dev"
          }

        prod {
            applicationId "your.com.prod"

        }
    }
}

右键单击项目并打开项目模块设置 - &gt;应用

enter image description here

在命令提示符下运行此命令:组装所有应用程序和辅助包的所有变体。

gradlew  assemble

答案 1 :(得分:0)

您也可以在internal static T DeserializeObject<T>(this JsonSerializer serializer, string value) : where T : new()

中使用此功能
app.gradle