发明人:将应用程序安装到SD卡上

[在提问后一周显示当前状态]

我深入了解应用发明者,因为我的孩子们(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

经过一点点冷却后,我现在有一个目录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">

[我用*** s检查了我的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

经过一些小小的调整,程序终止。

6)我改成目录

test123/dist

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

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

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

就是这样。


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

不幸的是,我仍然不知道我是否正在努力去做不可能的事情,例如,搜索是否会导致人们找到曾经工作但不再工作的解决方案,或者我是否错过了一些愚蠢的东西。

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


问题本身 :转移到SD卡选项变灰。

问题

解:

目前,应用程序发明者本身不支持安装到外部SD功能。 所以,你面临的问题是一个显示这一点的应用程序。

这种方法确实有效。 我测试了它! 我还上传了我用于Google云端硬盘帐户的所有工具,以便于下载。

test_orig.apk是应用程序发明者的原始文件。

第1步。使用apktool反编译APK。 它可以在Windows下使用apktool完成。 这是我在windows下使用的档案。 这些源不需要解码来编辑清单。 因此,使用的命令是apktool d -s test_orig.apk

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

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

更改清单

第3步。使用apktool b test_orig重新编译apk的时间

第4步。现在该签署了。 使用Sign +轻松签名。 只需添加apk,它会吐出一个签名的副本。 没有别的事情需要去做。

签名

第5步。您已签名的apk已准备好安装。 请记住要卸载旧的APK,否则您将看到一个错误,指出Application Not Installed: An existing package with a conflicting signature exists.

最终结果:

结束

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


看起来这是一个已知的问题:

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

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

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

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


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

有两个第三方应用程序可让您编辑主文件。 他们通过分开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=zh-CN#!forum/ai4a

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

加里

链接地址: http://www.djcxy.com/p/66907.html

上一篇: inventor: install apps onto SD card

下一篇: Android memory needed to install apk on external storage?