android - 扩展库有很多问题

2024-03-12

我需要使用新的 google-play(或市场)扩展库,但我很难使用它。 我想知道是否有其他人在使用它并注意到我所看到的相同问题,所以如果您能帮助解决这些问题,我将非常高兴:

1.有时我没有将重要事件(例如错误)返回到下载程序活动。

2.它在某些设备上根本不起作用,例如xoom。我想我已经修好了:在平板电脑上下载扩展文件 https://stackoverflow.com/questions/9807048/download-expansion-files-on-tablet/9873671#9873671

3.即使对于相同的设备,一个可以下载文件,另一个也总是会出现连接错误。对于某些设备,它永远无法下载(即使是具有 google-play 应用程序的非 root 设备)。

4.下载完成后,文件可能已损坏,因此我需要使用CRC检查并重新下载所有内容。

5.通知有时会在按下通知后打开下载器活动的多个实例。另外,我不明白为什么他们让通知保留,以防活动仍然显示。

6.当发生错误并稍后处理时,它不会等待用户告诉它恢复。我不确定它是在什么情况下发生的,但这确实很奇怪且不可预测。

7.离开下载器活动后,我收到泄漏服务的异常。

8.对应用程序进行混淆后,它会因通过库完成的 SQL 操作而崩溃。为什么会这样? 编辑:这是因为谷歌决定对 SQL 部分(在文件“DownloadsDB.java”中)进行一些反射操作。为了修复它,我尝试设置 proguard 来忽略整个库(无论如何它是开源的),但它不起作用,所以我所做的是自己提供它想要的类,所以我已经将“DownloadsDB.class.getDeclaredClasses()”替换为“new Class[] {MetadataColumns.class, DownloadColumns.class};” 。

我只是不明白为什么谷歌不能发布一个简单的API来向市场发送一个意图来下载文件并检查它是否正常,或者提供一个不太复杂的库。由于其复杂性,很难找到并修复它们的错误。

我的问题是:有没有其他人尝试过这个库,并且其他人是否成功地使用它而没有任何问题?如果是的话,请发布解决方案...


编辑:谷歌似乎已经更新了它的库(到版本2)。

他们声称接下来的变化:

  • 项目清单
  • 补丁文件现已下载。
  • 蜂窝设备现在支持类似 ICS 的通知
  • CRC 检查(来自示例)现在支持压缩的 Zip 文件
  • 删除反射的使用以方便混淆
  • 服务泄漏已修复
  • 从 ZipResourceFile 中删除了不可打印的字符
  • 细微的格式更改
  • 对此文件的附加评论和编辑

我现在已经测试过了,看来它们已经差不多了。

我发现的唯一错误是,如果我更新扩展文件(以及 APK&filesize&CRC),下载就会开始,但不会删除旧的扩展文件。

此外,通知显示当前时间,而不是任何其他可能与下载相关的内容。

目前,由于我只有一个扩展,因此每次从服务获取 STATE_COMPLETED 状态时,我都会进行下一次检查。我希望它没有任何其他问题:

private void deleteOldExpansionFile()
{
  int fileVersion = 0;
  final int versionCode = App.getAppVersionCode(DownloaderActivity.this);
  fileVersion = versionCode;
  final String fileName = Helpers.getExpansionAPKFileName(this, true, fileVersion); //get the expansion file name based on the build version of the app.
  final File newFile = new File(Helpers.generateSaveFileName(this, fileName));
  final File[] listFiles = newFile.getParentFile().listFiles();
  for (final File file:listFiles)
  {
    final String name = file.getName();
    if (name.startsWith(fileName))
      continue;
    file.delete();
  }
}

。你好 !对于CRC Check Fail,我也遇到过这个问题。为我解决这个问题的方法是使用 7zip 以 zip 格式存档我的扩展文件,根本不进行压缩(存储)。

像这样:http://floy.fr/perso/floy/expfiles/crc.PNG http://floy.fr/perso/floy/expfiles/crc.PNG

现在 CRC 对我来说就像一个魅力!

我同意你的观点..这个库使用起来非常痛苦..

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android - 扩展库有很多问题 的相关文章

  • 如何获取之前的碎片?

    为了在我的应用程序中重用某些片段 我需要知道哪个片段是返回堆栈上的第二个片段 为了做到这一点 我正在使用getFragmentManager getFragments 显示以下错误 但有效 FragmentManager getFragme
  • 如何强制 Eclipse 将 xml 布局和样式显示为文本?

    我最近升级到带有 ADT 20 0 3 的 Eclipse 4 2 Juno 如果我查看旧项目中的布局或样式 Eclipse 只会向我显示其适当的基于控件的编辑器 我想编辑语法突出显示的 xml 文本 我没有找到将插件的编辑器切换到此模式的
  • 播放 SoundCloud 曲目

    我可以在 Android 应用程序中播放 SoundCloud 中的曲目吗 我正在尝试这段代码 但它不起作用 String res https api soundcloud com tracks 84973999 stream client
  • 调试:在 Android 1.0 中找不到文件

    今天我更新到 Android Studio v 1 0 在尝试编译任何项目时出现以下错误 app build intermediates classes debug 找不到文件 问题是在更新之前我没有任何问题 这是我实际尝试编译的代码 构建
  • 如何在android中设置权限WRITE_SECURE_SETTINGS? [复制]

    这个问题在这里已经有答案了 我正在尝试启用 4 0 以上的辅助功能服务设置 但它显示异常 即 引起原因 java lang SecurityException 权限拒绝 写入安全设置需要 android permission WRITE S
  • android EditText 输入类型用于 StreetNumber 字段

    我试图在地址对话框的 streetNumber 字段中选择正确的 inputType 我想先显示数字键盘 然后让用户输入字母字符 对于一些非常特殊的情况 更接近这个的是 inputType datetime 但这不允许输入字母字符 那么如何
  • 使用 Retrofit2 和 Mockito 或 Robolectric 进行 Android 单元测试

    我可以测试 Retrofit2beta4 的真实响应吗 我需要 Mockito 或 Robolectic 吗 我的项目中没有活动 它将是一个库 我需要测试服务器是否正确响应 现在我有这样的代码并卡住了 Mock ApiManager api
  • AudioTrack、SoundPool 或 MediaPlayer,我应该使用哪个?

    如果我需要能够 播放多个音频文件 具有不同的持续时间 例如 5 到 30 秒 独立设置右 左声道的音量 应用声音效果 如混响 失真 那么 我应该使用哪个 API 另外 我在 AudioTrack API 上找不到太多文档 有谁知道在哪里可以
  • 使用 gradlew assembleRelease 从 React Native 创建发布 apk 时出现错误

    我想发布 apk 但我收到错误 文件已存在 mkdir D mobile 它在 d 驱动器中生成名为 mobile 的文件 删除文件后 再次执行 gradlew assembleRelease 创建该文件并抛出错误 任务 app bundl
  • 如何检查 Android 中连接的 wifi 网络是否处于活动状态

    如何自动检查android中连接的WiFi网络上的互联网是否处于活动状态 我可以检查 wifi 是否已启用或 wifi 网络是否已连接 但我不确定如何检查互联网是否已连接 这可能吗 private boolean connectionAva
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 获取手机的 z 轴和磁北极(而不是 y 轴)之间的角度

    我知道如何使用 getOrientation 方法获取手机 y 轴和磁北之间的方向角 如此处所述https developer android com guide topics sensors sensors position https
  • 在旋转时从错误的资源文件夹中提取可绘制对象

    在这里拉我的头发 因此 我正在使用一个具有多种类型的可绘制对象的应用程序 并且它们的结构如下 res Portrait resources drawable mdpi drawable hdpi drawable xhdpi Landsca
  • 使用 SQLITE 按最近的纬度和经度坐标排序

    我必须获得一个 SQLite SQL 语句 以便在给定初始位置的情况下按最近的纬度和经度坐标进行排序 这是我在 sqlite 数据库中的表的例句 SELECT id name lat lng FROM items EXAMPLE RESUL
  • PhoneStateListener 不调用

    这是我的完整代码 广播示例 java package com example broadcast gt import android app Activity import gt android content Context import
  • 有关 ListView 自定义行布局项目上的 onClick() 事件的帮助

    我有一个 ListView 其行由我格式化 每行都有 ImageView 和 TextView 的混合 我还实现了自己的适配器 并且能够通过它绘制每一行 现在 我想要这样的东西 用户单击 ImageView 不是行上的其他任何位置 但只有此
  • 按钮 - 单击时更改背景颜色

    我的活动中有 8 个按钮 我正在寻找的是 按钮具有默认背景 单击按钮时 背景颜色应更改为其他颜色 这部分非常简单 但是 当我单击任何其他按钮时 第一个按钮的背景颜色应该变回默认颜色 我知道这将使用 选择器状态 来完成 但我不太确定如何实现它
  • Android:RecyclerView 不显示片段中的列表项

    有人可以帮我尝试让我的 RecyclerView 出现吗 如果我不在片段中实现它 就会出现这种情况 然而 当我尝试将其实现到片段中时 CarFront 中的其他 XML 代码与 RecyclerView 分开显示 我的日志中收到此错误 E
  • 如何在基本活动中使用 ViewBinding 的抽象?

    我正在创建一个基类 以便子级的所有绑定都将设置在基类中 我已经做到了这一点 abstract class BaseActivity2 b AppCompatActivity private var viewBinding B null pr
  • 单元测试时 Android Studio 2.0 中测试状态终止且没有任何失败消息

    Issue 我昨天在 Ubuntu 上从 1 5 升级到了 Android Studio 2 0 当我在 Android Studio 2 0 中进行单元测试时 即使所有测试都已通过 它也会显示 终止测试 状态 有时它只显示部分测试通过 我

随机推荐