Articles of 发布

自动将Beta版Android应用发布到Google Play商店

我正在寻找一种方法,可用于从我的CI服务器自动将应用程序发布到Google Play商店的alpha和beta测试流。 我的CI设置如下: Android应用程序是使用Android Studio编写的(使用Eclipse确实不是我们的选择)。 构建脚本是用Rake编写的,并运行Gradle任务以及Calabash-Android测试。 构建服务器是Teamcity 8+,目前在本地托管(尽管我们可能会在云中移动到Jenkins)。 扫描完stackoverflow以获得此问题的答案后,唯一find的是自动将apk上传到Google Play的API? 然而,对于这个问题的答案已有一年多了,而且我们都知道一年是软件开发的一生,所以我希望事情可能会有所改善。 在发布到这两个流后,我还有一个子问题,测试人员在商店中看到它们需要多长时间? 我听到24到48小时,考虑到发布到生产的应用只花了几个小时似乎有点奇怪。

Android Studio已签名APK未安装

我在Android Studio中并在Build> Generate Signed APK和使用向导下签署APK。 一切似乎都很好,并生成.apk文件。 当我将此文件复制到我的设备(Nexus 7或Moto X)时,它将无法安装。 我收到“安装失败”消息。 我无法弄清楚到底出了什么问题。 我已经把这个.apk放在谷歌游戏开发者控制台的“alpha测试”下,它被接受了(我正在等待测试人员链接变得活跃,尝试从那里下载/安装)。 这里向导的说明( http://developer.android.com/tools/publishing/app-signing.html#studio )在最后阶段的屏幕截图中显示了一个名为“Build Type”的下拉列表,选择为“release” 。 我的Android Studio版本没有。 我在这个向导中找不到任何可以指定“发布”版本的东西。 任何人都可以给我的帮助将非常感激。 谢谢!

应用程序仅在发布版本中崩溃

在调试模式下运行应用程序时,应用程序无法崩溃。 但是当生成.apk文件时释放应用程序崩溃。 所有手机上都没有出现此错误 ,只有少数拥有android 6的手机 。 logcat显示问题是类中的NullPointerException ( android.support.v4.widget.drawerlayout )。 NullPointerException如何仅在发布apk上启动? 我们已经禁用了proguard,minify和shrinkResources。 没有解决这个bug。 这里有一些日志: Attempt to invoke virtual method ‘int android.view.WindowInsets.getSystemWindowInsetLeft()’ on a null object reference at android.support.v4.widget.ia(Unknown Source) at android.support.v4.widget.DrawerLayout$da(Unknown Source) at android.support.v4.widget.DrawerLayout.onMeasure(Unknown Source) at android.view.View.measure(View.java:18799) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.support.v7.widget.ContentFrameLayout.onMeasure(Unknown Source) at android.view.View.measure(View.java:18799) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)

Eclipse在哪里隐藏密钥库?

我对此感到非常沮丧,我怀疑答案很简单。 我已使用导出向导编译并签署了我的Android应用程序,如“使用Eclipse ADT编译和签名”一节中所述。 我想备份密钥库并为将来的应用程序更新提供方便,但我无法弄清楚密钥库保存的生活。 我当然可以使用Eclipse来完成这个过程,但如果我的计算机出现问题,我会非常紧张。 有谁知道它存储在哪里?

Android- POST多部分表单数据

我想发送包含电子邮件和姓名等video和数据的多部分表单。 以下是我的代码,它不起作用,没有来自服务器的响应 File file =new File(VideoPath); HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); try { // Add your data List nameValuePairs = new ArrayList(2); nameValuePairs.add(new BasicNameValuePair(“Name”, “LDGHT”)); nameValuePairs.add(new BasicNameValuePair(“Email”, “hhh@example.com”)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); httppost.setEntity(new FileEntity(file, “video/mp4”)); // Execute HTTP Post Request HttpResponse response = httpclient.execute(httppost); } catch (ClientProtocolException e) { // TODO Auto-generated […]

通过Http POST请求从Android上传文件和其他数据

这是从Android发布文件的简单方法。 String url = “http://yourserver.com/upload.php”; File file = new File(“myfileuri”); try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); InputStreamEntity reqEntity = new InputStreamEntity(new FileInputStream(file), -1); reqEntity.setContentType(“binary/octet-stream”); reqEntity.setChunked(true); // Send in multiple parts if needed httppost.setEntity(reqEntity); HttpResponse response = httpclient.execute(httppost); //Do something with response… } catch (Exception e) { e.printStackTrace(); } 我想要做的是在我的请求中添加更多POSTvariables。 […]

调试和发布apks之间的区别

我是android以及android studio的新手。 根据我在visual studio中的经验,当我们在另一台机器上测试.exe时,我们会复制release文件夹和.exe。 但是在android studio中,我看到我的同事通过使用USB驱动器在其他系统中复制和部署来测试调试apk。 似乎也在工作。 我可以知道部署该版本的后果是什么? 发布版本是否仅与Play商店相关? 除了调试版本包含可能使其变慢或笨重的调试信息之外,技术差异/后果是什么?

无法在Google Play商店中发布应用的更新版本

我在Google商店中已经有一个版本(versioncode = 2)。 昨天做了一些更改后,当我尝试发布应用程序时,我收到以下错误消息,无法发布更新。 知道我该如何修复它? This configuration cannot be published for the following reason(s): Version 2 is not served to any device configuration: all devices that might receive version 2 would receive version 3. Some devices are eligible to run multiple APKs. In such a scenario, the device will receive the APK with the higher […]

排球 – 阻止方式的http请求

我这几天正在学习如何使用Google排球。 这对于快速联网非常方便。 似乎所有请求都在Volley的后台运行。 例如: volleyRequestQueue.add(new JsonObjectRequest(Method.POST, SIGNUP_URL, reqBody, new SignUpResponseListener(), new MyErrorListener())); 使用上面的代码,我们可以进行后台运行的POST调用(非阻塞方式)。 现在我的问题是:是否有可能以阻止方式进行POST调用? 为什么我需要一种阻止方式来进行REST调用? 因为有些电话,比如登录,应该在做其他事情之前完成。 谢谢

如何测试将应用程序的更新发布到Market时会发生什么

我即将向市场发布一个新版本的应用程序。 为了避免任何潜在的问题,一旦它被推向市场并且人们得到更新的通知,我想在我的手机上使用.apk模拟我将发布的新版本应用程序的过程。 例如,它对它正在使用的SQLite DB进行了更新。 我能find的最接近的是使用Android Debug Bridge(adb)命令: adb install C:\myApplication.apk ,我的手机通过usb线连接到我的电脑。 (该参数表示您的PC上的apk文件)。 当我这样做,如果我的手机上已经安装了该应用程序,我收到一条错误消息: 失败安装失败已经存在。 如果我从手机中删除现有应用程序, adb install命令可以正常工作。 因此,看起来这只能用于安装手机上当前不存在的应用。 有没有办法模拟更新过程 ? 如果有adb update命令会很好,但我没有看到。