2015-06-19 37 views
-1

我想使用相同的项目来创建两个不同的apk(例如A.apk和B.apk)。因此,我更改了清单中的“包”和build.gradle中的“applicationId”。问题是安装B.apk时,android手机也会警告我解开A.apk。为什么? A.apk和B.apk有不同的包装。 A.apk的主包名是“com.meimei.a”,B.apk的主包名是“com.quanquan.b”。我仍然无法在同一部手机中安装A.apk和B.apk。如何生成不同的APK

+0

您需要重命名实际的Java包以及包中的清单 – Hector

+0

您必须更改包名称。因为Android总是检查包名而不是应用程序名。 –

+0

在应用程序中修改包结构,那么只有你可以生成不同的apk的 –

回答

0

我发现这个问题。问题是当前项目的提供者与旧当前拥有相同的权威。谢谢你们一样。

+0

你是如何解决问题的? –

1

这可以通过在build.gradle中使用productFlavors并更改每个flavor的应用程序applicationId来完成。

productFlavors { 
    appStaging { 
     applicationId "com.android.appname.staging" 
    } 
    appProduction { 
     applicationId "com.android.appname" 
    } 
} 

使用上述方法构建特定的风味应该会产生可以并排安装的独立工具。

此外,你甚至可以做一些类似下面的更改在这些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'] 
    } 
} 
+0

我发现此问题。问题是当前项目的提供者与旧当前拥有相同的权威。谢谢你们一样。 –