无法在cordova中指定Android API级别

时间:2015-01-24 03:54:49

标签: android api cordova bluetooth

当我将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的东西。我不想这样做,因为我可能也希望能够在其他手机上安装它。

0 个答案:

没有答案