我正在尝试将我现有的cordova项目从android 3.6.4更新到3.7.2 ...... 在更新之前,project.properties中指定的目标设置为“android-19”。 但是当我进行更新时,它会更改为'android-21'。
mac $ cordova -v
4.3.0
mac $ cordova平台ls
已安装的平台:android 3.6.4,浏览器3.5.2,ios 3.7.0
可用平台:amazon-fireos,blackberry10,firefoxos
这是我用来更新cordova android的命令
mac $ cordova平台更新android@3.7.2
更新android项目...
Android项目现在版本为3.7.2 如果您从3.2.0之前的版本更新并使用IDE,我们现在要求您导入“CordovaLib”库项目。mac $ cordova平台ls
已安装的平台:android 3.7.2,浏览器3.5.2,ios 3.7.0
可用平台:amazon-fireos,blackberry10,firefoxos
此时android / build.properties有target = android-21。
在我的本地机器上,我有多达22的android SDK,所以它在本地工作正常。但是在部署框19上是限制。所以没有机会在那里更新SDK版本。
如果我手动将build.properties中的目标更改为android-19
,会发生什么-compile:
[javac]将98个源文件编译为/ build / path / a / long / one / platforms / android / CordovaLib / ant-build / classes[javac] //build/path/a/long/one/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewClient.java:35:
错误:找不到符号
[javac] import android.webkit.ClientCertRequest;
[javac] ^
[javac] symbol:class ClientCertRequest
[javac] location:package android.webkit
[javac] //build/path/a/long/one/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewClient.java:145: 错误:找不到符号
[javac] public void onReceivedClientCertRequest(WebView视图,ClientCertRequest请求)
[javac] ^
[javac] symbol:class ClientCertRequest
[javac] location:class CordovaWebViewClient
等.....
我已经尝试了许多改变目标的事情但到目前为止没有任何好处发生。 我的config.xml中包含min和target sdk设置。
<preference name="android-minSdkVersion" value="14"/>
<preference name="android-targetSdkVersion" value="19" />
以上行确实会导致更新AndroidManifest.xml文件,但就此而言。对project.properties文件没有任何影响。
任何帮助将非常感激。感谢
答案 0 :(得分:0)
好吧,我不知道这是否会对任何人有所帮助,但这是我在这个问题上的2美分:
无法降级android / build.properties文件中的目标级别。所以保持21或22。原因是:cordova库使用Android API 21 +库...所以如果你试图降级它就会抱怨。
您可以在config.xml中管理目标SDK设置,它将负责生成AndroidManifest.xml文件。所以简而言之,如果build.properties中设置的目标是21,那么你可以在运行较低版本的Android设备上运行该应用程序。
希望这有帮助。