当我将LG Nexus 4手机从Android 4.4.4升级到5.0.1时,我的应用程序停止工作(连接到Arduino Adafruit EZ-Link蓝牙防护罩)。我现在唯一的提示/想法是cordova构建使用API 19(Android 4.4.2)而不是API 21(5.0.1)。
我已经重建了应用程序和其他所有关于API 21(5.0.1)的知识,但我无法使用cordova来使用它。它坚持使用API目标19。
很多人说 NOT 更改 platforms / android / AndroidManifest.xml 。 即使你这样做,它仍然无法正常工作。 基于我所看到的 How do I specify the Android API Level in PhoneGap? 我更新了我的config.xml以包含:
<preference name="android-targetSdkVersion" value="21" />
<preference name="android-minSdkVersion" value="14" />
但这也不起作用。 我在AVD(Android虚拟设备)管理器中吹掉旧的Android虚拟设备,并创建了一个使用API 21的新虚拟设备,并从Android SDK Manager安装了API 21。 但当我做 cordova build 时,我仍然得到:
[gettarget] Project Target: Android 4.4.2
[gettarget] API level: 19
如果我使用 - target 选项进行指定,则会爆炸:
server5> cordova build --target="android-21"
Running command: /usr/local/GrayAndWhite/cordova/wounds/platforms/android/cordova/build --target=android-21
/usr/local/GrayAndWhite/cordova/wounds/platforms/android/cordova/node_modules/q/q.js:126
throw e;
^
TypeError: Cannot call method 'prepEnv' of undefined
API 21是众所周知的。我做 cordova info ,我会得到一个
...
id: 3 or "android-21"
Name: Android 5.0.1
Type: Platform
API level: 21
Revision: 2
...
我知道Arduino方面仍然没问题,因为手机可以配对设备,App可以看到设备,获取它的MAC地址,但无法连接到它。
我没有尝试从SDK中删除API 19的东西。我不想这样做,因为我可能也希望能够在其他手机上安装它。