Android 如何生成不同的APK

Android 如何生成不同的APK,android,Android,我想使用同一个项目创建两个不同的apk(例如A.apk和B.apk),所以我更改了manifest中的“package”和build.gradle中的“applicationId”。问题是安卓手机还警告我在安装B.apk时不要挂A.apk。为什么?A.apk和B.apk有不同的包。 A.apk的主包名为“com.meimei.A”,B.apk的主包名为“com.quanquan.B”。我仍然无法在同一部手机中安装A.apk和B.apk。这可以通过在build.gradle中使用productFl

我想使用同一个项目创建两个不同的apk(例如A.apk和B.apk),所以我更改了manifest中的“package”和build.gradle中的“applicationId”。问题是安卓手机还警告我在安装B.apk时不要挂A.apk。为什么?A.apk和B.apk有不同的包。
A.apk的主包名为“com.meimei.A”,B.apk的主包名为“com.quanquan.B”。我仍然无法在同一部手机中安装A.apk和B.apk。

这可以通过在build.gradle中使用productFlavors并更改每个版本的应用程序的applicationId来实现

productFlavors {
    appStaging {
        applicationId "com.android.appname.staging"
    }
    appProduction {
        applicationId "com.android.appname"
    }
}
使用上述方法构建特定风格的APK,应形成可并排安装的单独APK

此外,您甚至可以通过执行以下操作来更改这些APK中所需的源:

sourceSets {
    appStaging {
        manifest.srcFile 'src/main/appstaging/AndroidManifest.xml'
        java.srcDirs = ['src/main/java/ui', 'src/appstaging', 'etc']
        resources.srcDirs = ['src/main/res']
    }
    appProduction {
        manifest.srcFile 'src/main/app/AndroidManifest.xml'
        java.srcDirs = ['src/main/java/ui', 'src/app', 'etc']
        resources.srcDirs = ['src/main/res']
    }
}

我发现了问题。问题是当前项目的提供商与旧项目的提供商拥有相同的权限。还是谢谢你

您需要重命名实际的java包以及清单中的包,您必须更改包名。因为Android总是检查包名而不是应用程序名。修改应用程序中的包结构,那么只有你才能生成不同的apk。你是说应用程序中的包结构是什么?我还将主包名从com.zfeng.a更改为com.test.b。但是他们也有相同的包com.meimei。我应该把com.meimei包换成另一个名字吗?在Android studio中,你的gradle应用程序ID会不同。我发现了这个问题。问题是当前项目的提供商与旧项目的提供商拥有相同的权限。还是谢谢你。