问题 #2
请参阅此问题中的详细说明:IBM Worklight - 如何更改默认的“Worklight 设置”字符串?
问题 #1
请注意 LogCat 中打印的以下警告:
12-31 19:47:26.874:W/test(1412):您的应用程序正在使用 WL.OptionsMenu API。请注意,如果您的应用程序面向 Android 3.0(API 级别 11)或更高版本,则 WL.OptionsMenu 可能无效,具体取决于设备。
文档链接
这是因为在更高的 API 级别中,Google 已经在 Android 中转移到了替换选项菜单的操作栏 UI 小部件。Worklight 尚不支持 Android 操作栏。
进入 Worklight 设置的方法是点击选项菜单中的按钮。选项菜单结合更高的 API 级别可能在各种设备中工作或不工作,这解释了您看到的不稳定行为。
底线是:在添加操作栏支持之前就是这样。这种行为充其量在较新的操作系统版本上会不稳定,并且可能无法正常工作。
下面的实验可以使用minSdkVersion
8、10、13 或 15(您需要通过 Android SDK 安装)来完成,并且在每个实验中您可能会看到不同的体验:工作按钮,不工作按钮,根本没有按钮,旋转时崩溃,在某些情况下不显示...和其他未知现象。这是由于 Worklight 中缺乏对 Action Bar 的支持以及 Android 本身在 API 级别之间不断变化的支持。
Worklight 6.0.0.1 中具有 Android 环境的新应用程序:
- minSdkVersion:8,构建目标 2.2,使用 Android 2.2 的 AVD:工作
- minSdkVersion:8,构建目标 4.0.3,使用 Android 4.0.3 的 AVD:工作
- minSdkVersion:8,构建目标 4.2.2,使用 Android 4.2.2 的 AVD:工作
- minSdkVersion:8,构建目标 4.3,使用 Android 4.3 的 AVD:工作
=====
导入到 Worklight 6.1.0.0 的同一应用程序:
它已升级到 Cordova 3.1,您还会收到以下消息:
FWLST1124W: 建议您的 Android 应用程序以用于构建 android 项目的相同 API 级别为目标。用于编译项目的 API 级别在 Project / Properties / Android 对话框中指定为 Project Build Target。通过将 android:targetSdkVersion 属性添加到 AndroidManifest.xml 并将其设置为相同的值,将您的应用程序配置为以相同的 API 级别为目标。
但是我们不要这样做,所以它会和你的相似......
- minSdkVersion:8,构建目标 2.2,使用 Android 2.2 的 AVD:工作
- minSdkVersion:8,构建目标 4.0.3,使用 Android 4.0.3 的 AVD:工作
- minSdkVersion:8,构建目标 4.2.2,使用 Android 4.2.2 的 AVD:工作
- minSdkVersion:8,构建目标 4.3,使用 Android 4.3 的 AVD:工作
=====
Worklight 6.1.0.0 中具有 Android 环境的新应用程序:
默认情况下使用 minSdkVersion 9,但也可以使用 8 在 Android 2.2 上运行它。
minSdkVersion: 8, targetSdkVersion: 18, Build Target 2.2, AVD using Android 2.2: 编译失败
因为AndroidManifest.xml
now 默认情况下也使用android:configChanges="orientation|keyboardHidden|screenSize
. screenSize
Android 2.2 不支持...
- minSdkVersion:8/13,targetSdkVersion:18,构建目标 4.0.3,使用 Android 4.0.3 的 AVD:无按钮
- minSdkVersion:8/13,targetSdkVersion:18,构建目标 4.2.2,使用 Android 4.2.2 的 AVD:无按钮
- minSdkVersion:8/13,targetSdkVersion:18,构建目标 4.3,使用 Android 4.3 的 AVD:无按钮
额外阅读:android:minSdkVersion、android:targetSdkVersion 和“target”之间的关系