Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android app inventor:将应用程序安装到SD卡上_Android_Android Sdcard_App Inventor - Fatal编程技术网

Android app inventor:将应用程序安装到SD卡上

Android app inventor:将应用程序安装到SD卡上,android,android-sdcard,app-inventor,Android,Android Sdcard,App Inventor,[在提问一周后编辑以显示当前播放状态] 我钻研AppInventor是因为我的孩子们(10岁和12岁)即将得到他们的第一部android手机,并且已经做了一些拖放编程(GameMaker),所以我认为这对他们来说可能是一个很好的切入点 我现在已经用AppInventor自己编写了5个应用程序,并在手机上安装了4个,但我无法安装第5个,因为我显然“内存不足”,尽管手机上的SD卡上有3个Gig可用 好吧,那到底发生了什么?设置->应用程序->管理应用程序不会将其删除,因为appinventor应用程

[在提问一周后编辑以显示当前播放状态]

我钻研AppInventor是因为我的孩子们(10岁和12岁)即将得到他们的第一部android手机,并且已经做了一些拖放编程(GameMaker),所以我认为这对他们来说可能是一个很好的切入点

我现在已经用AppInventor自己编写了5个应用程序,并在手机上安装了4个,但我无法安装第5个,因为我显然“内存不足”,尽管手机上的SD卡上有3个Gig可用

好吧,那到底发生了什么?设置->应用程序->管理应用程序不会将其删除,因为appinventor应用程序上的“移动到SD卡”选项变灰

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

不适合我的解决方案:

(1) “等等”

(2) “在手机上设置根目录,然后…”

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

(4) “购买此产品,然后…”


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

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

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

好吧,让我们试试

3) 我将apk放在linux机器上,下载并运行

在进行了一点烘焙之后,我现在有了一个目录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">
经过一段时间后,程序终止了

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”文件下载到手机上,并尝试安装它,我会收到一个令人难以置信的信息错误“!Application not installed”,我唯一的选择就是单击“done”

不幸的是,我仍然不知道我是否在尝试做不可能的事情,也就是说,谷歌搜索是否在引导人们找到过去有效但现在不再有效的解决方案,或者我只是错过了一些愚蠢的事情


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

这似乎是一个已知的问题:

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

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


可能值得将本期发布在

本期本身上: “移动到sd卡”选项变灰

解决方案:

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

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

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

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

步骤2。这将在包含apktool的同一目录中创建名为
test\u orig
的文件夹。此目录中有文件夹
AndroidManifest.xml
。在文本编辑器中打开它并更改以下行

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

步骤3。使用
apktool b test\u orig重新编译apk的时间

第4步。现在,是签署协议的时候了。签名很容易使用。 只需添加apk,它就会打印出一份签名副本。其他什么都不需要做

步骤5。您已签名的apk已准备好安装请记住卸载旧的apk,否则您将看到一个错误,提示未安装
应用程序:存在签名冲突的现有软件包。

最终结果:


已签名的应用程序可供下载。

我需要经常挂在这里

有两个第三方应用程序可以让您编辑mainfest。他们做你正在做的事情,把apk拆开,拿到清单,这样你就可以编辑它了

我发布了ai4a应用程序Inventor的新版本

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

这就是我们谈论的s
test123/dist
AndroidManifest.xml
classes.dex
resources.arsc
assets/smallkez.png
res/drawable/ya.png
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  ...android:installLocation="preferExternal">