起源
因为项目需要一个测试版,故需要改包名,但是rename package结果不是直接改,而是帮我查出259个文件需要改,如果每个文件都要改那我改用这个功能干啥,android stdio也不会这么蠢,于是,我便在网上查修改包名的方法,TMD百度出的结果全是清一色的,都没有提到最后是怎么改成功的(我严重怀疑他们是不是互相抄袭),最终在我翻了N多个页后,看到一个教程,才明白是怎么改成功的,话不多说,上图就明白了。
解释
原来我是没有点这个按钮,我就说嘛,android stdio不可能这么蠢,连eclipse都可以一步到位全部改,android stdio不可能不能。
2017年9月5日10:44:25 星期二 大雨
今天遇到一个新的问题,需要把原来不相互覆盖的app改成覆盖安装的app,首先我使用android stidio把包名改了回来,使用的方法如上文所示,但却发生了一些问题,特此记录注意事项。
需要查看,但其实android stdio一般帮你做了的
1、项目的包名
2、AndroidManifest.xml中的包名
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.mw.ydbi"
>
3、build.gradle中的包名
android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
applicationId "com.mw.ydbi"
minSdkVersion 15
targetSdkVersion 25
versionCode 43 // 上一版本16
versionName "2.2.7" // 上一版本1.9.6
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk {
// 设置支持的 SO 库构架,一般而言,取你所有的库支持的构架的`交集`。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64'
}
}
android stdio不会帮你改,你需要自己改的地方
1、AndroidManifest.xml的provider的authoritier
<provider
android:authorities="@string/ydbi_authorities"
android:name="android.support.v4.content.FileProvider"
android:grantUriPermissions="true"
android:exported="false"
tools:replace="name,authorities,exported,grantUriPermissions">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
对应的string.xml中的yd_authorities
<string name="ydbi_authorities">com.mw.ydbi</string>