更改 libGDX 游戏的包标识符

Change package identifier of libGDX game

我在 google Play 商店中已有一款游戏。现有版本完全使用 Android Studio 使用本机代码开发。现在我即将在 Play 商店发布同一游戏的高度增强版本,但这次,该应用程序是使用 libGDX 开发的。问题是我的应用程序的原始包名是 com.myname.mygame(透露真实姓名的一些保密问题)。我为 libGDX 基础项目提供了相同的包名称。但是当它在 android 中编译时,它会在包名称中添加一个 .android 扩展名。所以包名称现在变成 com.myname.mygame.android,因此我无法将应用程序作为更新发布。如何更改包名称?

编辑

根据此处发布的答案之一,我尝试将核心模块 fromcom.myname.mygame 的包名称更改为 com.myname.mygame.core,然后将清单中的包更改为 package="com.myname.mygame" 并移动 Android启动器从 com.myname.mygame.androidcom.myname.mygame。但是现在当我尝试 运行 应用程序时出现以下错误:

Installing com.myname.mygame.android
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.myname.mygame.android"
pkg: /data/local/tmp/com.myname.mygame.android
Success


Launching application: com.myname.mygame.android/com.myname.mygame.AndroidLauncher.
DEVICE SHELL COMMAND: am start -n "com.myname.mygame.android/com.myname.mygame.AndroidLauncher" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.myname.mygame.android/com.myname.mygame.AndroidLauncher }
Error type 3
Error: Activity class {com.myname.mygame.android/com.myname.mygame.AndroidLauncher} does not exist.

我注意到它仍然写着 com.myname.mygame.android 并且应用程序无法启动。

Libgdx 具有此架构:

com.myname.mygame作为核心模块

com.myname.mygame.android 作为 android 模块

com.myname.mygame.desktop 作为桌面模块等

因此您需要重构它们,例如将核心模块的包名称从 com.myname.mygame 更改为 com.myname.mygame.core 然后将清单中的包更改为 package="com.myname.mygame" 并将 AndroidLaunchercom.myname.mygame.androidcom.myname.mygame

非常感谢 Saeed 的回答,我能够做到,但我还需要做一件事才能在更改包名称后使应用程序正常工作。我在这里解释步骤:

  1. 将核心模块的包名从com.myname.mygame更改为com.myname.mygame.core
  2. 将清单中的包更改为 package="com.myname.mygame"
  3. 将 AndroidLauncher 从 com.myname.mygame.android 移动到 com.myname.mygame

以上步骤解决了更改包名的问题,非常感谢Saeed。现在应用程序无法启动。然后看到安装命令不对。要更改此设置,只需转至 android 应用程序的 build.gradle 并更改以下行:

commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.myname.mygame.android/com.myname.mygame.android.AndroidLauncher'

至:

commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.myname.mygame/com.myname.mygame.AndroidLauncher'

你准备好了!!!