问题标签 [android-assets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1806 浏览

eclipse - 无法获取 Android 资产目录中的文件

我正在尝试查找位于资产中的文件。我在 Eclipse android 项目中有 .txt、.gif 和 .db 文件,但在运行以下代码时不显示:

我得到这个列表:

此列表不包括资产中的任何文件。

项目属性当前设置为在构建路径中不包括资产文件夹。当我在构建路径中包含资产文件夹时,它会为我提供与第一个文件相同的列表,其中包含“..”。

我尝试将第三行中的“/”更改为“/assets/”,但没有返回任何内容。

在 Android 2.3.1 和 Android 2.1-update1 之间更改 Android 项目构建目标似乎没有效果。

项目属性中是否存在将资产中的文件包含在构建中所需的设置?使用 AssetManager 的资产目录是否有不同的名称?

0 投票
1 回答
2499 浏览

android - 使用我的桌面应用程序的用户如何在客户端修改预打包的 apk 文件?

好吧,我知道标题写得不好,但我的情况就是这么复杂!我在这里搜索了这个案例,但其他类似的问题确实与我的不同。

这是我的问题:

  • 我编写了一个 Android 程序,它显示存储在“assets”文件夹中的内容(原始格式的文本、图像等)。现在我想将此应用程序与一个 Windows 应用程序(也是我编写的)一起交付给最终用户,这让他们可以将内容添加到 apk 文件的“资产”文件夹,并使用他们想要的名称输出修改后的 apk(出现在他们的电话)。

现在什么是最好的解决方案,我应该使用哪些工具和命令?我的意思是我应该在我的软件中包含哪些工具(aapt、jarsigner、...)以及我的软件必须启动哪些命令才能执行此操作?

关于我的案例的更多信息:

  • 我的用户不高级,对 Android 编程和修改 apk 一无所知,我希望他们只使用我的客户端 windows 应用程序。
  • 我不想在客户端机器上使用 JDK、JRE、...。
  • 修改过程包括:替换AndroidManifest.xmldrawable\icon.png并在 assets 文件夹中添加一些文件。
  • 我将分发我的密钥库文件和未签名的原始 apk 文件以及我的软件,以便在流程结束时进行签名。

PS: 好的,几个小时后,我几乎在 9 个步骤中找到了解决方案,并获得了最终的自定义签名 zip 对齐的 apk 文件并安装在设备上而没有错误!但现在的问题是:我的用户生成的所有 apk 文件都将具有相同的包名称(com.MyName.MyApp),如果有人在他们的手机上安装了 2 个或更多,则会导致问题。我应该为这个问题尝试“aapt --rename-manifest-package”吗?以及如何使用它?

0 投票
1 回答
613 浏览

android - Android:在单例类中访问 AssetManager?

我有一个单例类来管理我的应用程序的数据和数据库处理。我使用默认值创建了一个 sqlite3 数据库并将其保存在资产目录中。在我的此类 API 中,我检查了 /data/data//my.db 中是否不存在 DB,然后将其从资产目录复制到此位置。

鉴于我的类是单例并且不从 UI 类继承,我是否可以在当前设置中编写此 API,或者我必须重新考虑一些替代设计?

我想知道这可能吗??

0 投票
0 回答
372 浏览

android - 从资产 HTML 文件中的输入字段获取/设置数据?

A从目录WebView加载 HTML 页面。/assets当用户在该 HTML 文件的文本字段中输入一些数据时,WebView一旦用户按下某个按钮或链接,我可以捕获/保存该数据吗?

另外,当用户返回该页面时,我可以用他之前输入的数据填充文本字段吗?

我正在尝试创建一种在 /assets 目录中的 HTML 页面之间保存临时数据的方法。

0 投票
1 回答
3748 浏览

android - Android 访问资产文件

我想访问一个位于资产下的文本文件,该文件将对该文件进行一些处理并在我的活动中调用。我正在使用的代码是:

如果在 Activity 类中使​​用它可以正常工作,但是如何使它在普通的 java 类中工作?

已编辑

JamesBlack - 因为如果我通过输入流,那么下面的代码将不起作用

即使gestureNumbers.size() > 1,while循环也只执行一次,一旦读取文件一次,它就等于null。

当以下代码有效但我无法在普通 java 类中打开文件时,它在活动类中有效,我不想在一个类中有太多代码。

0 投票
1 回答
705 浏览

android - 不同设备配置的不同资产

我正在开发一个应用程序,它捆绑了一些资产——它们主要是带有相关图形、css 等的网页,我将在自定义的WebView. 我正在尝试研究如何在不大量重复的情况下为不同的设备提供不同的资产。

我想复制 res 文件夹,但要复制资产。例如:

assets/html/page1.html 引用 assets/html/example_pic.png 但我想根据屏幕密度或屏幕尺寸提供不同的 example_pic.png。

理想情况下,我想要像 assets_hdpi/html/example_pic.png 和 assets_mdpi/html/example_pic.png 这样的东西

有没有一种优雅的方式来实现这一目标?我可以通过将 example_pic.png 放入 /res/drawable_hdpi 等然后以某种方式将网页指向可绘制对象,以某种方式利用 /res/ 文件夹管理来获得相同的最终结果吗?

0 投票
3 回答
3111 浏览

android - Drawable.createFromResourceStream() 中的异常——仅限 HTC?

我发布了一个 IME(软键盘)应用程序,我只收到来自 HTC 手机的崩溃报告。这是堆栈跟踪:

这是我对 Drawable.createFromResourceStream() 的调用

其中InputMethodServicecontext子类是FileInputStreamAssetInputStream(我都试过了)。资源文件是编译后的NinePatchDrawable。我已经确认流不为空。stream

重复一遍:这个错误只发生在运行各种版本的 Android 操作系统的某些 HTC 手机(包括 Evo)上。

有没有人经历过这个和/或知道如何解决它?

提前致谢,

巴里

PS 奇怪的是,崩溃线 465 不在任何版本的BitmapFactory.java中的崩溃方法BitmapFactory.decodeResourceStream()中,因此 HTC 必须使用修改后的代码。

0 投票
1 回答
217 浏览

android - 任何人都可以访问 Assests 文件夹中的内容吗?

我想为某家公司开发一个应用程序。该应用程序主要是特定数据库中的搜索工具。

我有两种方法来开发这个应用程序:

  1. 将数据库文件包含到assest文件夹中并使用它。
  2. 使用 API 搜索。(我的搜索工具有一个 API。您可以使用浏览器搜索数据库)。

我更喜欢第一个选项。问题是我的客户希望他们的数据库文件不能被未经授权的人访问。他们对这个问题非常认真。

如果我使用第一个选项开发应用程序:

  1. 任何人都可以从 .apk 文件或其他任何地方检索数据库数据吗?
  2. 如果我将数据库文件放入assest文件夹中,它是否不安全?

如果答案是肯定的,那么我可以避免让最终用户使用互联网在我的工具中搜索吗?我可以避免使用选项 2 吗?即有没有任何安全的方法来包含数据库而不用担心我提到的安全问题?

提前致谢。

0 投票
1 回答
623 浏览

android - FileNotFoundException Android

我有一个非常愚蠢的例外出现并扰乱了我的想法。

我在 assets 文件夹中有一个 xml 文件,它说明在哪里可以找到我的应用程序的内容更新。

所以我使用 xmlpullparser 来解析我的资产 xml 文件,然后从那里获取链接,然后我使用代码片段:

// 我得到了 zip 文件的正确 url 并使用浏览器中的这个链接我可以下载 zip 文件......但是我在调​​试时得到 FileNotFoundException。

任何想法我错在哪里?

0 投票
2 回答
461 浏览

java - 窗口泄漏错误

我有个问题

我创建了我的进度对话框

我的资产文件夹中有 12 个 apk 文件。我正在尝试使用此功能将所有 12 个资产复制到 sdcard

但我的应用程序总是在 10 个文件上崩溃,并出现错误:窗口泄漏。如果我删除 Log.e,它不会崩溃,但仍然只复制 10 个文件,而不是 12 个!

谷歌搜索后我发现我需要使用dialog.dismiss(),但我现在不想解雇它,需要显示另外2个元素的进度!

日志猫:

编辑:似乎这不是进度对话框问题。修复 log.e 行并出现新错误:

为什么它不能在资产的第 10 个元素之后复制?

谢谢