2

[在提问一周后编辑显示当前的游戏状态]

我深入研究了应用程序发明者,因为我的孩子(10 岁和 12 岁)即将获得他们的第一部 Android 手机,并且已经完成了一些拖放编程(游戏制作者),所以我认为这对他们来说可能是一个很好的切入点。

我现在自己和应用程序发明者一起编写了 5 个应用程序,并在我的手机上安装了 4 个,但我无法安装第 5 个,因为我显然“内存不足”,尽管手机上的 SD 卡上有 3 个免费演出。

好的,这是怎么回事?设置->应用程序->管理应用程序并没有削减它,因为“移动到 SD 卡”选项在 appinventor 应用程序上显示为灰色。

我将我的第 5 个应用程序打包为 apk,然后将其解压缩以查看 AndroidManifest.xml,但它不是纯文本:-/

不适合我的解决方案:

(1) “等待”

(2)“根你的手机,然后......”

(3)“从你的手机内存中删除一些东西”[解决方法,而不是解决方案]

(4) “买这个产品然后……”


好的,这是一个更新。我仍然没有设法解决这个问题。这是我到目前为止所做的。

1)我在 appinventor 中创建了一个名为“test123”的应用程序,带有一张图片和一个按钮(什么都不做)。

2) 我创建了一个 apk,并把它贴在我的网站上:你可以在这个链接上看到它。任何想要下载并在手机上运行的人都可以,只要他们的手机上有 4 兆左右的可用内存。据我所知,他们无法将其下载到他们的 SD 卡上。因此,让我澄清一下,挑战在于将链接中的那个应用程序安装到手机 SD 卡上。

好的,让我们试试吧!

3)我把 apk 放在一个 linux 盒子上,下载apktool,然后运行

apktool d test123.apk

经过一点点 baksmaling,我现在有了一个目录 test123 。

4)我进入目录 test123 ,在那里我找到了一个文件 AndroidManifest.xml 。我编辑了这个文件;前几行是

<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="3" android:versionName="1.5" package="appinventor.ai_************.test123"
  xmlns:android="http://schemas.android.com/apk/res/android">

[我用 *** 审查了我的 gmail 地址]

我把它们改成

<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="3" android:versionName="1.5" package="appinventor.ai_************.test123"
  xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal">

5)我进入旧apk所在的目录(即包含目录test123的目录)并输入

apktool b test123

在一些smaling之后,程序终止了。

6)我改成目录

test123/dist

在其中我找到了一个新的 .apk 文件,也称为 test123.apk 。我把它放在我的网站。请注意,apk 的“之前 apktools”和“之后 apktools”版本具有完全相同的名称 - test123.apk 。

7)我现在将“之后”文件(由 apktool b 创建的版本)下载到 Windows 机器上,并用 7-Zip 打开它(切换到 Windows 只是为了让我可以使用答案中建议的精确程序) . 我找不到建议我删除的文件。我懂了

AndroidManifest.xml
classes.dex
resources.arsc
assets/smallkez.png
res/drawable/ya.png

就是这样。


总之,我似乎在 DarkXphenomenon 解决方案的第 5 步失败了(在撰写本文时)。如果我将“after”文件下载到手机上并尝试安装它,我会收到令人难以置信的信息错误“!未安装应用程序”,我唯一的选择是单击“完成”。

不幸的是,我仍然不知道我是否正在尝试做不可能的事情,即谷歌搜索是否会导致人们找到曾经有效但不再有效的解决方案,或者我是否只是错过了一些愚蠢的事情。

这对我来说是一个根本性的问题!我的手机开箱即用,有大约 21 兆的可用内存,而我的 sd 卡有千兆字节和千兆字节。

4

3 回答 3

4

问题本身:移动到 sd 卡选项显示为灰色。

问题

解决方案:

目前,app-inventor 本身还不支持安装到外部 SD 功能。因此,您面临的问题是显示这一点的应用程序。

这种方法确实有效。我测试过了!我还将我使用的所有工具上传到我的 Google Drive 帐户以便于下载。

test_orig.apk是来自 app-inventor 的原始文件。

步骤 1.使用 apktool 反编译 APK。它可以在windows下使用apktool完成。 是我在windows下使用的存档。无需对源进行解码即可编辑清单。因此,使用的命令是apktool d -s test_orig.apk

反编译

第 2 步。test_orig这将创建在包含 apktool 的同一目录中命名的文件夹。在这个目录中是文件夹AndroidManifest.xml。在文本编辑器中打开它并更改以下行。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"  ...android:installLocation="preferExternal">

变更清单

步骤 3.是时候重新编译 apk 了apktool b test_orig 重新编译

第 4 步。现在,是时候签署它了。使用Sign+可以轻松签名。只需添加 apk,它就会输出一个签名副本。没有其他事情需要做。

签约

第 5 步。您的签名 apk 已准备好安装。记得卸载你的旧apk,否则你会看到一个错误,上面写着Application Not Installed: An existing package with a conflicting signature exists.

最终结果:

结尾

已签名的应用程序可在此处下载。

于 2012-07-10T17:49:54.950 回答
1

这似乎是一个已知问题:

http://code.google.com/p/app-inventor-for-android/issues/detail?id=186

该线程中的某人说他们找到了解决方案,但如果我不得不猜测,我猜他们使用的解决方案是在 apk 文件中的清单被混淆之前。

不幸的是,我认为目前没有(简单的)方法可以将应用程序移动到 SD 卡。

在MIT 应用程序发明者论坛上发布这个问题可能是值得的

于 2012-07-10T17:45:49.907 回答
1

我需要经常挂在这里...

有两个第三方应用程序可让您编辑 mainfest。他们通过拆开 apk 并获取清单来完成您正在处理的工作,以便您可以对其进行编辑。

我提出了一个新版本的 ai4a App Inventor http://sourceforge.net/projects/ai4a-configs/files/V1.2/

它将清单保存在您的临时文件夹中,您可以在其中编辑它,然后使用您编辑的清单重建 apk。我还没有测试安装到 sd 卡上(我在 Google TV 上放了一些 App Inventor 应用程序只是为了看看它是否工作 ;-))。如果您尝试使用 ai4a 服务器,请务必告知我们。

这是我们谈论服务器的地方https://groups.google.com/forum/?hl=en#!forum/ai4a

这里是支持https://groups.google.com/forum/?hl=en#!forum/usgsuacwai

加里

于 2012-07-19T11:27:03.313 回答