草庐IT

android - 我收到此错误 : Data exceeds UNCOMPRESS_DATA_MAX on android 2. 2 但在 2.3 上没有

coder 2023-06-10 原文

我只在 android 2.2 版本上遇到错误,但在 2.3 版本上没有。

错误:

 04-26 13:41:34.862: ERROR/Database(3701):  sqlite3_open_v2("/data/data/com.TravelPharm/databases/medicaments.sqlite", &handle, 1, NULL) failed
 04-26 13:41:34.942: DEBUG/dalvikvm(417): GC_EXPLICIT freed 82 objects / 4000 bytes in 1617ms
 04-26 13:41:35.062: DEBUG/asset(3701): Data exceeds UNCOMPRESS_DATA_MAX (17304576 vs 1048576)
 04-26 13:41:35.062: DEBUG/AndroidRuntime(3701): Shutting down VM
 04-26 13:41:35.072: WARN/dalvikvm(3701): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701): FATAL EXCEPTION: main
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701): java.lang.Error: Error copying database
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at com.TravelPharm.DBHelper.createDataBase(DBHelper.java:395)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at com.TravelPharm.TravelPharm.SumofDetails(TravelPharm.java:290)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at com.TravelPharm.TravelPharm.onCreate(TravelPharm.java:64)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at android.os.Handler.dispatchMessage(Handler.java:99)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at android.os.Looper.loop(Looper.java:123)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at android.app.ActivityThread.main(ActivityThread.java:4627)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at java.lang.reflect.Method.invokeNative(Native Method)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at java.lang.reflect.Method.invoke(Method.java:521)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
 04-26 13:41:35.103: ERROR/AndroidRuntime(3701):     at dalvik.system.NativeStart.main(Native Method)

我明白这是因为我的数据库太大“UNCOMPRESS_DATA_MAX”所以我该如何解决这个问题??

我将不胜感激,

谢谢!!!

最佳答案

我也有类似的问题,经过大量搜索,我找到了这个页面来回答我的问题。

http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/

总而言之,Android 会压缩除页面上列出的 Assets 文件之外的任何 Assets 文件,因为它们已经被压缩。这种压缩通常是一件好事,但是当文件太大时,它又会困扰程序员。作者建议的两个选项是 1)将数据库文件重命名为未压缩的文件(例如 .jpg)或 2)关闭数据库文件扩展名的压缩(请参阅有关如何操作的博客文章那)。如果您使用的是 Eclipse,第 2 个可能会很困难,因此作者建议使用第一个选项。

整个问题已在 Android 2.3.3 中得到纠正,这就是为什么您没有出现错误的原因 :)

编辑:这个网站解释得很简单: https://web.archive.org/web/20120423232710/http://www.nutprof.com/2010/12/data-exceeds-uncompressdatamax.html

编辑2:回顾这个答案,我意识到根据文件的大小,也许您可​​以考虑从网络服务器下载文件,然后将其复制到您需要的任何地方。就我而言,我正在将 SQLLite DB 复制到应用程序私有(private)存储中,但由于 APK 已签名,我无法从我的 Assets 中删除旧数据库。所以现在我不再使用那些时髦的命名东西,而是去让它在第一次运行时从互联网上下载并放在私有(private)空间中。这样,应用程序在第一次运行时不会使其大小翻倍。

关于android - 我收到此错误 : Data exceeds UNCOMPRESS_DATA_MAX on android 2. 2 但在 2.3 上没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5789177/

有关android - 我收到此错误 : Data exceeds UNCOMPRESS_DATA_MAX on android 2. 2 但在 2.3 上没有的更多相关文章

  1. ruby-on-rails - 更好的替代方法 try( :output). try( :data). try( :name)? - 2

    “输出”是一个序列化的OpenStruct。定义标题try(:output).try(:data).try(:title)结束什么会更好?:) 最佳答案 或者只是这样:deftitleoutput.data.titlerescuenilend 关于ruby-on-rails-更好的替代方法try(:output).try(:data).try(:name)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

  2. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  3. ruby-on-rails - 从 Rails 2.3 升级到 Rails 4.0 - 2

    我们有一个目前在Rails2.3.12版和Ruby1.8.7版上运行的应用程序。我们想将我们的应用程序更新到Rails4.0和Ruby2.1.0。我们有大约200个模型和150个Controller。我想知道升级过程需要多大的努力。您还可以提供升级可以遵循的步骤。我们应该先升级Ruby然后再升级Rails还是相反? 最佳答案 您想要实现的目标将是史诗般的努力。我无法为您提供分步说明,因为不可能在一个答案中涵盖所有情况。我建议不要同时升级Ruby和Rails,而是分步升级。升级本身的复杂性是巨大的,但只要您的应用程序具有合理的测试覆盖

  4. ruby-on-rails - Nokogiri 要求 Ruby 版本 < 2.3 - 2

    我正在尝试让Rails在Windows10上运行。我正在使用Ruby2.3.0和Rails4.2.6,并且暂时使用Nokogiri1.6.3。当我尝试运行railsnewdemo时,它返回错误:Anerroroccurredwhileinstallingnokogiri(1.6.7.2),andBundlercannotcontinue.Makesurethat`geminstallnokogiri-v'1.6.7.2'`succeedsbeforebundling.当我运行geminstallnokogiri-v'1.6.7.2时,我得到:ERROR:Errorinstallingn

  5. ruby-on-rails - 模型范围正在破坏 rake db :migrate - rails 3. 2.3 postgres 9.1.3 - 2

    我在新的Rails应用程序(3.2.3)中运行迁移时遇到了问题。我们正在使用postrgres9.1.3和-pg(0.13.2)-当我运行rakedb:create,然后运行​​rakedb:migrate,我得到->1.9.3-p194(master)rakedb:migrate--trace**Invokedb:migrate(first_time)**Invokeenvironment(first_time)**Executeenvironmentrakeaborted!PG::Error:ERROR:relation"roles"doesnotexistLINE4:WHEREa

  6. ruby - 如何在 InSpec 中访问 Chef data_bags - 2

    我正在为我正在处理的一些新ChefRecipe编写InSpec测试。我想利用Recipe使用的data_bags遍历数据包项。我不知道如何在我的InSpec测试中访问它们!这些Recipe使用了search、data_bag和data_bag_item方法。但是这些方法在我的InSpec测试中似乎不可用。我怀疑这些是ChefDSL特定的方法?data_bags的源代码受源代码控制,因此我可以在我的本地文件系统上访问它们的json。如何使用InSpec语法访问Chef_zero中的这些数据包?我在网上找到了几个示例,但我没有看到data_bags实际上是如何由chef_zero加载的,以

  7. ruby-on-rails - Rails 使用 send_data 或 send_file 将多个文件发送到浏览器 - 2

    我正在尝试向浏览器发送多个文件。我不能像下面的代码一样为每条记录调用send_data,因为我收到双重渲染错误。根据thispost我需要创建文件并压缩它们,以便我可以在一个请求中发送它们。@records.eachdo|r|ActiveRecord::Base.include_root_in_json=true@json=r.to_jsona=ActiveSupport::MessageEncryptor.new(Rails.application.config.secret_token)@json_encrypted=a.encrypt_and_sign(@json)send_da

  8. ruby-on-rails - 使用 rails send_data 发送 PDF - 2

    我使用ruby​​1.9.3和redmine1.4.4据此->Pleasehelpmesendajpgfileusingsend_data,我在Controller中这样做:@file=temp.pathFile.open(@file,'r')do|f|send_dataf.read,:filename=>"myfile.pdf",:type=>"application/pdf",:disposition=>"attachment"endFile.delete(@file)但它返回ArgumentError(UTF-8中的无效字节序列),为什么? 最佳答案

  9. ruby - 使用 ActiveResource 保存时有 'allocator undefined for Data' - 2

    我错过了什么?我正在尝试使用Active资源的休息服务,我有以下内容:classUser"Test",:email=>"test.user@domain.com")puserifuser.saveputs"success:#{user.uuid}"elseputs"error:#{user.errors.full_messages.to_sentence}"end以及用户的以下输出:#"Test","email"=>"test.user@domain.com"}>和这个错误:/Library/Ruby/Gems/1.8/gems/activeresource-3.0.10/lib/ac

  10. ruby - 使用 Ruby 和 net-ssh,如何通过 Net::SSH.start 使用 key_data 参数进行身份验证? - 2

    我已经阅读了net-ssh文档,但我仍然感到困惑。我可以手动进行身份验证(使用ssh-i...),也可以将key放在文件中并使用:keys参数。但是,我不想使用:keys参数,我想使用:key_data参数。任何人都可以举一个工作的例子吗?出于某种原因,直接将字符串输入:key_data是行不通的,它给出了错误:“既不是PUBkey也不是PRIVkey::嵌套的asn1错误”。当然,我用谷歌搜索了一下,它基本上告诉我要确保key是PEM格式。而且,当然是。有任何想法吗?如果需要,我可以提供更详细的信息... 最佳答案 我看到这个问题

随机推荐