我的密钥库已损坏,因此Android电子市场要求我重命名该应用并重新提交。但是,每当我在清单和整个文件中编辑软件包名称时,都会出现大量错误。
更改应用程序名称的正确方法是什么?
我的密钥库已损坏,因此Android电子市场要求我重命名该应用并重新提交。但是,每当我在清单和整个文件中编辑软件包名称时,都会出现大量错误。
更改应用程序名称的正确方法是什么?
Answers:
如果您使用的是Eclipse,则可以尝试从Android开发人员网站上获取这些说明。它们专门用于GestureBuilder示例,但据我所知应适用于任何应用程序:
[H] ere如何在Eclipse中执行此操作:
- 右键单击程序包名称(
src/com.android.gesture.builder)。- 选择“重构”>“重命名”并更改名称,例如
com.android.gestureNEW.builder。- 打开清单文件。在
<manifest>标签内,将包名称更改为com.android.gestureNEW.builder。- 打开两个活动文件中的每个文件,然后按Ctrl-Shift-O添加缺少的导入包,然后保存每个文件。在模拟器上运行GestureBuilder应用程序。
另外,请确保您记得重命名程序包本身以及文件中对它的引用。在Eclipse中,您可以在左侧的文件浏览器窗口/树视图中查看包的名称。以我的经验,有时Eclipse可能有点精巧和不可靠(例如,遗漏了对旧软件包名称的引用)。
app_nameres-> values => strings.xml
有一种方法可以在Eclipse中轻松更改软件包名称。右键单击您的项目,向下滚动到Android Tools,然后单击“重命名应用程序包”。
您可以在Eclipse中执行以下操作:
src/com.android.gesture.builder)。Refactor > Rename并更改名称,例如
com.android.gestureNEW.builder。<manifest>标签内,将包名称更改为com.android.gestureNEW.builder。Activity文件中的每个文件,然后执行Ctrl+ Shift+ O添加缺少的导入包,然后保存每个文件。GestureBuilder在模拟器上运行该应用程序。更新
超级简单的方法,右键单击您的项目...

说实话,在您应该使用的Android Studio中,通过right-clicking在project structure -> Refactor -> Rename...
然后,它提供了重命名目录或程序包的选项。选择包。该目录应遵循。输入新的程序包名称,然后单击“重构”。它将更改所有导入,并为您删除多余的导入。您甚至可以在注释和字符串等中为它修复它。
最后,在顶部的AndroidManifest.xml中相应地更改包名称。否则,到处都是抱怨R.whatever的错误。
另一个非常有用的解决方案
首先用所需的名称by right clicking on thejava文件夹-> new-> package 创建一个新包。
然后,选择所有类并将其拖动到新包中。AndroidStudio将在任何地方重构软件包名称。
之后:在应用程序的build.gradle添加/编辑applicationId中添加新的。即(com.a.bc以我为例):
defaultConfig {
applicationId "com.a.bc"
minSdkVersion 13
targetSdkVersion 19
}
原始文章和更多评论在这里
package文件夹下java
没有Eclipse:
更改AndroidManifext.xml中包名称和活动名称,以及在.xml文件中显示的其他任何位置(自定义视图名称等)
更新所有源文件中的程序包导入语句
重命名所有文件夹以匹配程序包名称。文件夹位置:
一个。箱/班
b。gen
c。src
更新build.xml中的项目名称(否则您的apk名称不会更改)
删除bin / classes / com / example / myapp /中的所有.class文件(如果跳过此步骤,则在构建过程中文件不会被重写,并且dex给处理“类名与路径不匹配”错误带来了很多麻烦
删除gen / com / example / myapp / BuildConfig.java(我不知道为什么在步骤3a中删除BuildConfig.class不会导致dex更新其路径,但是直到我删除BuildConfig.java之前,它一直在重新创建gen / com / oldapp_example / oldapp并将BuildConfig.class放在那里,我不知道为什么来自同一位置的R.java不会出现此问题。我怀疑BuildConfig.java是在预编译时自动生成的,但R.java不是)
以上6个步骤是我更改包名并成功构建*的工作。可能有更好的方法通过dex命令更新路径,或者通过编辑项目根目录中的classes.dex.d来处理步骤5和6。我不熟悉dex,或者是否可以删除/编辑classes.dex.d,所以我采用了删除.class文件的方法,我知道该文件将在构建中重新生成。然后,我检查了classes.dex.d,以查看仍然需要更新的内容。
*在我的构建EXCEPT dex和apkbuilder中均未留下任何错误或警告,均声明“找到已删除的目标文件”,没有有关该文件的详细信息。不知道是否在每个版本中都显示了它,是否在我弄乱软件包名称之前就出现了,还是由于删除而导致的结果而我错过了一步。
在Android Studio 1.3中最快的方法:
manifestModule Settings[F4]-> Flavors,输入Application Id相同的名称。[right-click-> new-> package][Right-click-> Refactor-> Move-> {Select package}-> Refactor]PS:如果您不遵循此顺序,则最终可能会用新的导入和一堆编译时错误一一更改所有的Java文件,因此顺序非常重要。
src文件夹中的软件包名称,并在其中打勾rename subpackages右键单击项目> Android工具>重命名应用程序包
转到src并右键单击您的主包> Refactor> Rename
转到清单文件并更改包名称。
因此,将IntelliJ与Android(Studio)插件一起使用是:我到AndroidManifest.xml了最顶层,并通过右键单击->重构->重命名来更改包名称。我们当时的软件包名称有四个部分a.b.c.d,只有新的部分a.b.c。因此,我将前三个重命名。然后,我转到生成源的目录(app\build\generated\source\r\development\debug\a\b\c\d),右键单击R类,然后将其Refactor-> Move [d]移至更高的包。同样的,BuildConfig在app\build\generated\source\buildConfig\development\debug\a\b\c\d。
通过使用Refactor-> Move,IntelliJ更新了对BuildConfig和的所有引用R。
最后,我更新了在gradle.build中找到的所有applicationId [s]。我点击了“清理项目”,“制作并重建项目”。从我的手机中删除了该应用,然后点击“播放”。一切都完成了,因此重构既简单又快速。
在Android Studio 1.2.2中说如果要更改com.example.myapp为,org.mydomain.mynewapp
您可以按照以下屏幕快照中显示的每个目录中的步骤进行操作。它将为您提供预览选项,以便您可以在进行任何更改之前进行预览。
转到Refactor -> Rename并输入您的新名字。您必须对每个文件夹都执行此操作,例如com,example和myapp。它将自动更新导入,因此您不必担心。

同时更新build.gradle不会自动更新的文件。
defaultConfig {
applicationId "org.mydomain.mynewapp" //update the new package name here
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
之后,它将要求sync执行此操作。那一切都会好起来的。之后,我可以将APK上传到Google商店。确保您已签署应用程序以将其上传到商店。