我已将旧 Mac“更新”到 Mac OS X 10.7.5。我在这台 Mac 上安装了 JDK 1.7.0_72。我正在尝试在装有 Android 2.3.3 的旧 Android 平板电脑上使用 LiveCode 独立应用程序。
未修改的独立版,使用“仅注册开发”选项构建,在我的平板电脑上运行良好,但视频不会显示。
首先,我使用适用于 Windows 的 LiveCode 6.6.2 构建了适用于 Android 的应用程序。然后我把它复制到我的Mac上。我用了
$ java -jar apktool.jar decode /Volumes/Macintosh\ HD/Users/User/Desktop/apk\ tool/MyApp.apk app
反编译apk文件。它出现在我的主目录中名为“app”的文件夹中,包含子目录:
app
AndroidManifest.xml
apktool.yml
assets/
doc/
links.txt
pic/
vid/
Demos/
Examples/
Other/
Simple Animation.mp4
Vimeo Pro Example.html
Tutorials/
SQL.html
build/
lib/
res/
smali/
资产文件夹的内容包含在 LiveCode 的独立构建器中。我在项目开发期间创建了所有这些文件和文件夹。文件夹中的vid
文件夹包含几个 HTML 文件和一个 mp4 文件。我只列出了文件树中的几个 html 文件。
我通过替换行更改了文件 AndroidManifest.xml
<application android:label="MyApp" android:debuggable="false">
和
<application android:label="MyApp" android:debuggable="false" android:hardwareAccelerated="true">
在此之后,我再次使用 apktool 重新构建了应用程序。我使用了sudo
,因为这里说我必须使用 sudo:
$ sudo java -jar /Volumes/Macintosh\ HD/Users/User/Desktop/apk\ tool/apktool_1.5.2.jar b -a /Volumes/Macintosh\ HD/Developer/android-s-d-k-mac_x86/platform-tools/aapt
看来,如果您使用 sudo 一次,则必须一直使用 sudo。所以,现在我不得不使用
$ sudo jarsigner -verbose -sigalg SHAwithRSA -digestalg SHA1 -keystore /Volumes/Macintosh\ HD/Users/User/app/dist/MyApp.apk myalias
我验证它已签名并更改文件名然后对齐文件
/Volumes/Macintosh HD/Users/User/app/dist/MyApp.apk
至
/Volumes/Macintosh HD/Users/User/app/dist/MyApp_unaligned.apk
我使用对齐文件
$ zipalign -v 4 /Volumes/Macintosh\ HD/Users/User/app/dist/MyApp_unaligned.apk /Volumes/Macintosh\ HD/Users/user/app/dist/MyApp.apk
该文件应该可以在我的 Android 平板电脑上运行。我能够启动并运行该文件,但我的应用程序在 folder 的子文件夹中看不到任何文件vid/
,除了Simple Animation.mp4
. 但是,它确实注意到有文件。检查文件夹中所有文件夹vid/
的文件的重复循环会创建一个列表,但列表中的行是空的,每个文件一行,这意味着它无法弄清楚文件的名称是什么。不用说,我检查了所有文件都包含在新的 apk 文件中。
什么可能导致这种情况?
如果您想知道文件路径:我从外部磁盘启动我的 Mac 并使用内部磁盘上的文件。所以,/Volumes/Macintosh HD 不是这里的系统盘。