我的密钥库已损坏,因此Android Market要求我重命名该应用并重新提交.但是,每当我在Manifest和整个文件中编辑包名时,它都会给我带来大量的错误.
更改应用程序名称的正确方法是什么?
Mar*_*ein 302
有一种方法可以在Eclipse中轻松更改包名称.右键单击您的项目,向下滚动到Android Tools,然后单击重命名应用程序包.
eld*_*his 102
如果您正在使用Eclipse,则可以尝试从Android开发人员站点获取这些说明.它们专门用于GestureBuilder示例,但应该适用于任何应用程序,据我所知:
[H]你是如何在Eclipse中做到这一点的:
- 右键单击包名称(
src/com.android.gesture.builder).- 选择"重构">"重命名"并更改名称,例如更改为
com.android.gestureNEW.builder.- 打开清单文件.在
<manifest>标记内,将包名称更改为com.android.gestureNEW.builder.- 打开两个Activity文件中的每一个,然后按Ctrl-Shift-O添加缺少的导入包,然后保存每个文件.在模拟器上运行GestureBuilder应用程序.
此外,请确保您记得重命名包本身以及文件中对它的引用.在Eclipse中,您可以在左侧的文件资源管理器窗口/树视图中看到包的名称.根据我的经验,Eclipse有时可能有点笨拙且不可靠(例如,留下对旧包名称的杂散引用).
AZ_*_*AZ_ 52
以下是在Eclipse中执行此操作的方法:
src/com.android.gesture.builder).Refactor > Rename并更改名称,例如更改为
com.android.gestureNEW.builder.<manifest>标记内,将包名称更改为com.android.gestureNEW.builder.Activity文件中的每一个并执行Ctrl+ Shift+ O添加缺少的导入包,然后保存每个文件.GestureBuilder在模拟器上运行该应用程序.更新
超级简单的方法右键单击您的项目...

cra*_*ned 11
在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
}
Run Code Online (Sandbox Code Playgroud)
原帖和更多评论在这里
没有Eclipse:
更改AndroidManifext.xml中的包名称和活动名称以及它在.xml文件中显示的任何其他位置(自定义视图名称等)
跨所有源文件更新包导入语句
重命名所有文件夹以匹配包名称.文件夹位置:
a.bin/classes
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命令来处理步骤5和6以更新路径,或者可能通过编辑项目根目录中的classes.dex.d.我不熟悉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文件,因此顺序非常重要.
更改包名是一个痛苦的屁股.看起来不同的方法适用于不同的人.我的解决方案快速且无错误.看起来不需要清理或重置日食.
| 归档时间: |
|
| 查看次数: |
183506 次 |
| 最近记录: |