发明人:将应用程序安装到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?