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

2023-12-08

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

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

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

好吧,到底发生了什么事?设置->应用程序->管理应用程序并没有解决这个问题,因为“移动到 SD 卡”选项在 appinventor 应用程序上呈灰色显示。

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

不适合我的解决方案:

(一)“等等”

(2)“root你的手机然后……”

(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">

[我已经用 ***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 。我把它放在我的网站上here。请注意,apk 的“before apktools”和“after 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 卡选项呈灰色。

Issue

解决方案:

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

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

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

Step 1.使用apktool反编译APK。 windows下可以使用apktool来完成。This是我在windows下使用的压缩包。无需对源进行解码即可编辑清单。因此,使用的命令是apktool d -s test_orig.apk

Decompilation

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

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

Change Manifest

Step 3. Time to recompile the apk using apktool b test_orig Recompilation

Step 4.现在,是时候签署了。使用签名变得容易Sign+。 只需添加 apk,它就会生成一个签名副本。无需执行任何其他操作。

Signing

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

最终结果:

End

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

app-inventor:将应用程序安装到 SD 卡上 的相关文章

随机推荐

  • IOException:读取失败,套接字可能已关闭 - Android 4.3 上的蓝牙

    目前 我正在尝试在使用 Android 4 3 Build JWR66Y 我猜是第二个 4 3 更新 的 Nexus 7 2012 上打开 BluetoothSocket 时处理一个奇怪的异常 我看过一些相关的帖子 例如https stac
  • 计算字符串中字符的出现次数 Haskell [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 尝试确定如何计算 a 的出现次数char is a string 我是把它存储在一个列表中 char count countChars String gt Char Int 我是
  • Qt Creator 编辑器中的 CPU 使用率过高

    即使在简单的应用程序中 就像由向导制作的 QWidgets 应用程序一样简单 在编辑代码时 qtcreator exe 每隔一段时间就会飙升至 50 1 个核心 似乎即使在输入几个新字符后它也会解析整个项目 从而使其无响应并且在某种程度上无
  • 就地生成 2 个向量的笛卡尔积?

    如果我想得到这两个的笛卡尔积vector
  • 如何在曲面图上投影一条线?

    我有一个根据 CSV 文件中存储的点数据创建的曲面图 如果我想在 3D 创建的表面上投影一条线 漂浮在表面上方 方法是什么 我尝试过来自的代码以下帖子用于在 xy xz yz 平面上投影一条线 我可以看到它正在将线的端点投影到 xy xz
  • Bash-if 子句无法正常工作[重复]

    这个问题在这里已经有答案了 我想制作一个关闭脚本 但它没有按预期工作 这是我写的 echo Wanna shutdown y n read ANSWER if ANSWER y then sudo shutdown P now else p
  • CSS:“正确”属性拒​​绝申请?

    这真让我抓狂 我有两个 div 就在 body 标签之后 它们的位置和大小都是绝对的 它们都具有相同的 左 属性 但我后来声明了第二个 div 的 右 属性 因此 左 应该被忽略 这是 HTML div class previousPage
  • iOS Objective C - UIWebView 自动填充和执行

    我想知道是否有任何可能的方法可以让 webview 自动输入网站上文本框的值并提交 以便用户可以完全绕过搜索 特别是搜索表单 那么用户只能看到结果 一个例子是 http www eatwellguide org mobile 我注意到查看它
  • 泛型 > 在 collection.sort/ 类似的代码?

    我一直使用类似的接口通过 collection sort 为我的类提供自然排序 基本上 如果我有一个 person 类 我将让它实现 Comparable 接口并提供compareTo 的实现 但是在 javadocs 中 Collecti
  • 在hibernate中如何使用not in子句

    我有两张桌子 就业和生产 生产表有 jobid 字段 该字段引用作业表的 jobid 在hibernate中如何使用not in子句 实现如下sql查询 SELECT FROM jobs where job id not in 从生产中选择
  • 在Python中返回一个角色中的对象并在QML中获取另一个对象的引用

    我正在写一个 Twitter 客户端 我实施了TweetItem and TweetModel 问题是有一个角色TweetItem called original 我希望它指向原始推文 更新 我的代码中有一些拼写错误 现在我修复了它们 im
  • 如何定义静态运算符<<?

    是否可以定义一个仅对类的静态成员进行操作的静态插入运算符 就像是 class MyClass public static std string msg static MyClass operator lt lt const std stri
  • 在 OpenGL 中绑定零纹理

    在我的程序中 我使用 2 个纹理 t0 和 t1 t1 是附加的 仅在某些情况下需要 glActiveTexture GL TEXTURE1 if mDisplayMode EDM DEFAULT glBindTexture GL TEXT
  • 如何获取特定月份和年份的天数

    我有一个传递两个参数 Month 和 Year 的方法 我会这样调用这个方法 MonthDates January 2010 public static string MonthDates string MonthName string Y
  • iPhone——以编程方式创建UITabBar?

    如何做到这一点 请注意 我不想要控制器 只是一个标签栏 UITabBar aTabBar UITabBar alloc initWithFrame aFrame 您可能需要参考类文档例如像这样的方法 setItems animated 另外
  • 如何在 CSS 和 HTML 中创建价格标签形状

    所以我找到了这个答案 CSS3菜单形状 样式但不知道如何将其放在左侧 我已经搜索过了 但没有运气 这就是我想要实现的目标 我也发现了这个 改变三角形的形状 我怎样才能让它在另一侧工作 我的意思是箭头需要位于左侧 是否可以用一个来做到这一点d
  • 在matlab中用渐变灰度颜色绘制圆

    我想在matlab中画一个带有渐变颜色的圆 但我不能 有谁可以帮助我吗 示例图片可以在这里找到 这是一种方法 N 200 this decides the size of image X Y meshgrid 1 1 N 1 1 1 N 1
  • r 过滤具有唯一字段的数据框[重复]

    这个问题在这里已经有答案了 我给出了编码和 R 的第一步 但我遇到了一个问题 我有一个具有以下格式的数据框 Months Person April Person1 May Person2 April Person1 June Person
  • 自定义属性编辑器不适用于 Spring MVC 中的请求参数?

    我正在尝试使用 Spring 注释创建一个多操作 Web 控制器 该控制器将负责添加和删除用户配置文件并为 jsp 页面准备参考数据 Controller public class ManageProfilesController Init
  • app-inventor:将应用程序安装到 SD 卡上

    编辑以显示提问后一周的当前状态 我深入研究了应用程序发明家 因为我的孩子 10 岁和 12 岁 即将获得他们的第一部 Android 手机 并且已经完成了一些拖放编程 游戏制作者 所以我认为这对他们来说可能是一个很好的切入点 我现在已经用应