情况
我的应用程序中有一组功能,它们根据安装的商店进行更改.例如,我希望为家庭观众和儿童展示一组更受限制的广告,以便有资格获得该Google Play for Education类别.在其他商店,我仍然想限制,但不希望像过滤广告一样严格.
我最后的一般观察是,如果我选择加入"Google Play for Education"类别,则需要花费几个小时才能发布,因为以下内容(如开发者控制台所述):
选中此框会提交此应用,以便包含在Google Play for Education的"教育工作者推荐"部分中.关于推荐哪些应用程序的最终决定是由第三方教师网络完成的.如果您的应用被选中,我们将通过电子邮件通知您.如果没有,您的应用仍可在Google Play for Education中搜索.
现在,在应用程序在此类别中发布教师网络之前,我假设,下载并测试/验证是否符合指南且没有违规.
问题
为了区分我安装的商店我显然使用这个:
PackageManager packageManager = context.getPackageManager();
String installer = packageManager.getInstallerPackageName(packageName);
if (installer == null) installer = ""; //to avoid NPE
if (installer.equals("com.android.vending")) {
//It is installed from Google Play store
//PROBLEM: THIS DOES NOT SEEM TO BE THE PACKAGE NAME RETURNED
//WHEN GOOGLE PLAY REVIEWERS/TESTERS ARE USING THE APP
}
else ...
....
....
//similarly handling other …Run Code Online (Sandbox Code Playgroud) android publishing admob android-package-managers google-play
这是对这篇文章帮助我的答案的延续
我们可以添加字符串资源,如下所示build.gradle:
Run Code Online (Sandbox Code Playgroud)productFlavors { main{ resValue "string", "app_name", "InTouch Messenger" } googlePlay{ resValue "string", "app_name", "InTouch Messenger: GPE Edition" } }
它的作用就像一个魅力,并且每个风格都有不同的app名称.(app_name从strings.xml文件中删除原始字符串资源.
但是,我们如何为这个添加的字符串资源添加本地化字符串build.gradle?
我们可以通过指定区域设置的附加参数吗?
或者
可以使用gradle任务来完成它?
注意:我不能这样做strings.xml(因为我的项目结构的几种方式不可行)
android android-resources android-studio android-gradle-plugin android-productflavors
在我们的Android项目中,我们希望APK的文件名包含日期,git分支名称和简短提交哈希等信息.
我们一直把它作为我们的一部分 defaultConfig
android {
defaultConfig {
setProperty("archivesBaseName", "$projectName.$branchName.$date.$buildNumber.$versionCode-$versionName-$versionSha")
}
}
Run Code Online (Sandbox Code Playgroud)
这在大多数情况下都有效,但是我们的构建有时会失败并指向过时的值(例如在切换分支之后).在Android Studio中强制Gradle Sync通常会修复它.
那么,是否有更好,更强大的方法来确保财产保持最新并强制进行同步?
我将shrinkResources设置为true,如下所示:
releasepro {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationIdSuffix ".pro"
}
Run Code Online (Sandbox Code Playgroud)
但这只是删除了一些未使用的资源.我知道gradle做了一些猜测,并留下了不确定未使用的资源.有没有办法100%删除所有未使用的资源?
我读到在另一个线程中将shrinkMode设置为strict.这会有帮助吗?我无法尝试,因为我无法确定设置它的位置.查看示例和文档,但遗憾的是无法访问正确的页面.
有没有办法确保100%删除未使用的资源?
我正在使用Android Studio 1.5.1为我的公司构建一个Android应用程序.我发现该应用程序无法在某些 Galaxy S5手机上运行.
当应用运行时,这些手机只显示白屏.在使用Android版本5.1.1的Galaxy S5设备上会出现此错误,但在运行Android 5.0版本的Galaxy S5设备上则不会
我专注于Android版本作为解决此错误的线索.我实际上无法获得其中一个设备,所以我创建了几个虚拟设备.Android Studio的虚拟设备配置向导中有6个Android 5.1.1的可下载系统映像.我安装了所有这些.没有复制此白屏错误.
我还能做些什么来发现这个bug?
如果它有助于回答我的问题,我的应用很大程度上依赖于服务器通信.整个应用程序只是一个Webview有一些html&JS文件.
参考这个答案.是否可以像链接答案中的那个一样创建productFlavors和sourceSets使用复制构造函数initWith.那一个很有用buildTypes.
因为buildTypes它是这样做的:
debugfree.initWith(buildTypes.debug)
Run Code Online (Sandbox Code Playgroud)
这是可能的productFlavors和sourceSets呢?
android gradle android-productflavors android-build-type android-sourcesets
我正在阅读有关getResourceId()方法的文档.它说:
检索索引处属性的资源标识符.请注意,在检索整个TypedArray对象时,属性资源已解析.因此,此函数将返回找到的最终资源值的资源标识符,而不一定是该属性指定的原始资源.
所以
检索索引处属性的资源标识符.
请注意,在检索整个TypedArray对象时,属性资源已解析.
因此,此函数将返回找到的最终资源值的资源标识符,而不一定是该属性指定的原始资源.
android android-custom-view typedarray android-resources android-custom-attributes
在Google Play开发者控制台中,我目前只能看到提交评论的用户反馈以及评分.但我看不到那些只有评级(没有评论).
我可以通过Play商店本身看到一些(通过点击应用页面中的所有评论按钮).但是那个也没有显示所有提交的评论.
那么,有没有办法查看用户提交的所有反馈?
这对我来说正在所有项目中发生.当我从Android Studio生成签名的apk时,我收到以下正确的消息:
问题:在此之后,当我实际上没有生成签名的apk时,我继续为项目发生的每个构建获取此消息.
我检查了目标文件夹,看看apk是否实际上已生成,但事实并非如此.那为什么我收到消息?重新启动Android Studio后,它会停止.
这是项目或设置中的错误配置还是Android Studio中的错误?我正在使用Android Studio 1.5.1
更新:我不想禁用lint和禁止该问题.实际上,我(可能是在寻找一个真正的解决configuration or settings change中IDE或gradle文件)
正如我在用户2082415接受的答案中所提到的,这是Android Studio中的一个错误.我现在正在关注错误报告,并会在可用的情况下使用解决方案更新此帖子.
这是错误报告的链接
在使用Admob横幅广告时,测试和实时广告都不会占用设备的全部宽度.
这是adView我在布局xml中声明的:
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:gravity="bottom"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id"></com.google.android.gms.ads.AdView>
Run Code Online (Sandbox Code Playgroud)
这是呈现的内容:
android ×10
gradle ×4
admob ×2
apk ×2
google-play ×2
publishing ×1
review ×1
signing ×1
typedarray ×1