电脑建网站,佛山网站建设怎样做,建设通网站原理,建网站价格在开发中#xff0c;测试环境与正式环境是分开的#xff0c;常常需要修改配置打不同环境下的apk,而且如何在android平台下让debug和release的app共存#xff1f;本着提高效率避免重复工作的目的与大家分享一个方案。本文是基于强大的AndroidStudio的构建工具gradle来实现的。…在开发中测试环境与正式环境是分开的常常需要修改配置打不同环境下的apk,而且如何在android平台下让debug和release的app共存本着提高效率避免重复工作的目的与大家分享一个方案。本文是基于强大的AndroidStudio的构建工具gradle来实现的。配置应用的build.gradle文件android{...buildTypes{debug{//在编译打包时会给包名加上后缀applicationIdSuffix.debug}release{}}...}之后开启Build Variants界面(在androidstudio左下角的窗口选择器可以选择)选择不同的选项run的时候走的就是对应的gradle配置。230049551073205.png权限重复的问题如果项目中使用了第三方库而且在AndroidManifest.xml中声明了权限例如个推android:namegetui.permission.GetuiService.package_nameandroid:protectionLevelnormal/android5.0以上安装应用时会报duplicate permission exception,所以要保证debug和release安装包的permisson name不同可以在gradle文件下debug和release节点下配置一个字段然后在AndroidManifest.xml中引用来实现打包时动态配置AndroidManifest.xml中的信息如下修改AndroidManifest.xmlandroid:name${getui_name}android:protectionLevelnormal/配置build.gradledebug{applicationIdSuffix.debuggetui_name:getui.permission.GetuiService.package_name_debug,}release{getui_name:getui.permission.GetuiService.package_name,}AndroidManifest.xml其他动态信息也可以采用这种方式配置如app_name可以实现测试包和正式包的名字不同。代码中使用geadle中的动态字段例如可以在gradle文件中debug和release节点下如下配置字段然后在代码中以BuildConfig.IS_DEBUG形式来引用release{...buildConfigField boolean, IS_DEBUG, false...}debug{...buildConfigField boolean, YY_DEBUG, true...}PSAndroidManifest.xml如果配置了provider也需要采用上面的方式配置provider的android:authorities属性只要保证名称不同即可否则安装会报异常。包名加了后缀后微信无法调起所以测试时如果设计微信则要处理一下。