20

我有一个 Android 应用程序(我们称为 X),我想创建第二个应用程序 X2,但基于另一个应用程序。所以我将清单应用程序名称属性更改为 X2,我也更改了包名称......但是当我安装 X2 时,应用程序 X 被删除了!

我应该更改哪些属性,以便我可以在一台设备上独立安装这两个应用程序。我正在研究 eclispe。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.company.app1"
    android:versionCode="1"
    android:versionName="1.0" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name1"
        android:theme="@style/AppTheme" >

改变后。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.app2"
android:versionCode="1"
android:versionName="1.0" >

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name2"
    android:theme="@style/AppTheme" >
4

4 回答 4

3

还可以更改脚本模块package中的名称它会起作用gradlebuild.gradle

defaultConfig {
    applicationId "com.me.mesurvey" //put your package name here//
    minSdkVersion 14
    targetSdkVersion 19
}
于 2015-04-02T10:40:49.263 回答
3

好吧,它可以在具有更新平台的其他设备上运行!无论如何,正确的响应是您只需要更改应用程序的名称和包。

编辑 1:现在,如果您使用的是 Android Studio,请使用 applicationIdSuffix 为每种风格提供一个应用程序。

debug {
        applicationIdSuffix ".debug"
    }

在这里阅读更多developer.android.com

于 2013-05-30T16:21:15.360 回答
0

我需要这样的工具,因为客户希望能够同时使用应用程序的测试版和发布版。我正在更改 APK 的主命名空间以使用 apktool 实现此目的。

我遵循以下步骤:

  • 使用 apktool java -jar apktool.jar d -o out -f my-app.apk反编译 apk
  • 将out 目录中所有文件中的com.mainnamespace替换为com.mainnamespacebeta
  • 将目录out/smali/com/mainnamespace重命名为out/smali/com/mainnamespacebeta
  • 再次编译apk java -jar apktool.jar b -o ./debug.apk -f ./out
  • 使用 jarsigner 使用新密钥对 apk 进行签名。jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key.keystore ./debug.apk "password" -storepass "password" -keypass "password"

这是手册如何签署 apk 以获取 key.keystore - http://developer.android.com/tools/publishing/app-signing.html

我还为 linux 创建了简单的脚本 - https://gist.github.com/vavrecan/8596303

于 2014-01-24T12:31:45.747 回答
0

第 1 步:选择(单击)您的应用程序主包,然后单击 Shift+f6 并更改包名

第 2 步:转到 build.gradle 并将 applicationId 更改为新的包名称,如下 defaultConfig {

    applicationId "com.sample.main"//give your new package name

    minSdkVersion 15

    targetSdkVersion 25

}

第三步:清理项目

第 4 步:运行项目并确保它可以正常工作

快乐的编码......

于 2018-05-21T10:07:28.803 回答