我的密钥库已损坏,因此 Android 市场要求我重命名应用程序并重新提交。但是,每当我在 Manifest 和整个文件中编辑包名称时,都会出现大量错误。
更改应用程序名称的正确方法是什么?
有一种方法可以在 Eclipse 中轻松更改包名称。右键单击您的项目,向下滚动到 Android 工具,然后单击重命名应用程序包。
如果您使用的是 Eclipse,则可以尝试从 Android 的开发者网站获取 these instructions。它们专门用于 GestureBuilder 示例,但据我所知应该适用于任何应用程序:
[H] 以下是在 Eclipse 中执行此操作的方法:右键单击包名称 (src/com.android.gesture.builder)。选择 Refactor > Rename 并更改名称,例如更改为 com.android.gestureNEW.builder。打开清单文件。在
此外,请确保您记得重命名包本身以及文件中对其的引用。在 Eclipse 中,您可以在左侧的文件资源管理器窗口/树视图中看到包的名称。以我的经验,Eclipse 有时可能会有点笨拙且不可靠(例如,留下对旧包名称的杂散引用)。
app_name
以下是在 Eclipse 中执行此操作的方法:
右键单击包名称 (src/com.android.gesture.builder)。选择 Refactor > Rename 并更改名称,例如更改为 com.android.gestureNEW.builder。打开清单文件。在
https://i.stack.imgur.com/BR7sm.png
在 Android Studio(老实说,您应该使用它)中,在 project structure -> Refactor -> Rename...
中的包名称上将包名称更改为 right-clicking
然后它提供了重命名目录或包的选项。选择包。目录应该跟上。输入您的新包名称,然后单击重构。它将更改所有导入并为您删除多余的导入。你甚至可以让它在评论和字符串等中为你修复它。
最后,在您的 AndroidManifest.xml 中相应地更改包名称。否则你会到处抱怨 R.whatever 的错误。
另一个非常有用的解决方案
首先创建一个具有所需名称的新包by right clicking on the
java 文件夹 ->新的->包。`
然后,选择所有类并将其拖到新包中。 AndroidStudio 将在任何地方重构包名称。
之后:在您应用的 build.gradle
中添加/编辑新的 applicationId。即(在我的情况下为 com.a.bc
):
defaultConfig {
applicationId "com.a.bc"
minSdkVersion 13
targetSdkVersion 19
}
原始帖子和更多评论here
java
下的 package
没有 Eclipse:
更改 AndroidManifext.xml 中的包名称和 Activity 名称以及它显示在 .xml 文件中的任何其他位置(自定义视图名称等) 跨所有源文件更新包导入语句 重命名所有文件夹以匹配包名称。文件夹位置:垃圾箱/类 b. c. src 更新 build.xml 中的项目名称(或您的 apk 名称不会更改)删除 bin/classes/com/example/myapp/ 中的所有 .class 文件(如果您跳过此步骤,文件不会在此过程中被重写build 和 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 个步骤是我为更改包名并成功构建 * 所做的。可能有更好的方法来处理步骤 5 和 6,通过 dex 命令更新路径,或者通过编辑项目根目录中的 classes.dex.d。我不熟悉 dex 或者是否可以删除/编辑 classes.dex.d 所以我采用了删除 .class 文件的方法,我知道这些文件会在构建中重新生成。然后我检查了 classes.dex.d 以查看仍需要更新的内容。
*我的构建中没有留下任何错误或警告,除了 dex 和 apkbuilder 都声明“找到已删除的目标文件”,但没有具体说明该文件是什么。不确定这是否出现在每个构建中,是否在我弄乱我的包名称之前就存在,或者它是否是我删除的结果并且我错过了一个步骤。
按着这些次序:-
右键单击项目。
转到 Android 工具。
单击重命名应用程序包。
更改应用程序包名称。
完毕
在 Android Studio 1.3 中最快的方法是:
更改清单中的包名称转到模块设置[F4]-> Flavors,在 Application Id 中写入相同的名称。创建具有该名称的新包:[右键单击-> 新建-> 包] 选择项目的所有 java 文件,然后继续 [右键单击-> 重构-> 移动-> {选择包}-> 重构]
PS 如果您不遵循此顺序,您最终可能会通过新的导入和一堆编译时错误来一个一个地更改所有 java 文件,因此顺序非常重要。
更改包名称是一件令人头疼的事情。看起来不同的方法适用于不同的人。我的解决方案快速且无错误。看起来不需要清洁或重置 Eclipse。
右键单击包名称,然后 Refractor > Rename。右键单击项目名称 Android 工具 > 重命名应用程序包。手动设置 Manifest 中未被前面步骤更改的包名称。
Bernstein 有方法,使用 Eclipse 工具“重命名应用程序包”,即使事后您也可能需要进行一些清理。此外,当您对项目进行更改时,Eclipse 有时会丢失对事物的跟踪。您可能必须使用“清理项目”工具(在“项目”菜单下)。如果这不起作用,您可能必须关闭并重新启动 Eclipse。 Voo-doo 解决方案,但 Eclipse 可以这样。
首先在清单文件中更改包名 Re-factor > Rename the name of the package in src folder and put a check for rename subpackages 这样就完成了。
对于没有 Eclipse 的用户,还有另一种解决方案,只需更改 AndroidManifest.xml 中
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="new.package.name"
.....
</manifest>
选择:
打开 AndroidManifest.xml 在清单标签中更改 package="NEW NAME"。
右键单击 Project >Android Tools >Rename Application Package Go to src 并右键单击您的主包 >Refactor >Rename 转到清单文件并更改您的包名称。
我只是浪费了几个小时尝试所有解决方案。我确信,问题出在我的代码中 - apk 启动,但在使用不同的类和活动时出现了一些错误。
与我的项目一起工作的唯一方法:
重命名它 - 文件/重命名并检查所有复选框检查未重命名的位置,我在其中一个布局中的旧名称仍在工具中:context=".. 创建新工作区导入项目到新工作区
对我来说它有效,只有解决方案。
因此,使用带有 Android (Studio) 插件的 IntelliJ 是:我转到顶部的 AndroidManifest.xml
并通过右键单击更改包名称 ->重构 ->改名。我们当时的包名有四部分 a.b.c.d
,新的只有 a.b.c
。所以我重命名了前三个。然后我转到生成源的目录(app\build\generated\source\r\development\debug\a\b\c\d
),右键单击 R
类并将 Refactor->Move[d] 到更高的一个包。与 app\build\generated\source\buildConfig\development\debug\a\b\c\d
中的 BuildConfig
相同。
通过使用 Refactor->Move,IntelliJ 更新对 BuildConfig
和 R
的所有引用。
最后,我更新了我在 gradle.build 中找到的所有 applicationId[s]。我点击了清洁项目,制作和重建项目。从我的手机中删除该应用程序并点击“播放”。这一切都解决了,所以重构很容易而且很快。
在 Android Studio 1.2.2 中,如果要将 com.example.myapp
更改为 org.mydomain.mynewapp
,您可以按照以下屏幕截图中显示的每个目录中的步骤进行操作。它将为您提供预览选项,以便您可以在进行任何更改之前进行预览。
https://i.stack.imgur.com/2KETr.png
同时更新不会自动更新的文件 build.gradle
。
defaultConfig {
applicationId "org.mydomain.mynewapp" //update the new package name here
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
之后它会要求 sync
执行此操作。那么一切都会好起来的。之后我可以将我的 APK 上传到谷歌商店。确保您已签署您的应用程序以将其上传到商店。
在您的 Android 工作室中,在项目面板中,有齿轮图标“单击它”。取消选中 Compact Empty Middle Packages 现在包目录已被分解,即单独的目录。选择要重命名的目录。右键单击该特定目录。选择重构,然后重命名选项。对话框已打开,重命名。输入新名称后,单击重构。然后单击底部的 Do Refactor。然后 android studio 将更新所有更改。现在打开 build.gradle 文件并更新 applicationId 并同步它。现在转到清单文件并重命名包。重建您的项目。你完成了:)