phonegap 3.0想要Android 17,但我想要android 18

时间:2013-09-13 15:03:33

标签: android cordova android-4.3-jelly-bean cordova-3

虽然有经验的phonegap和xcode,但我是android的新手。 我已经安装了phonegap 3.0 ......

npm install phonegap
phonegap --version
3.0.0-0.14.3

我已经安装了adt-bundle-mac-x86_64-20130729。命令行工具(例如:android)似乎工作正常。 当我尝试将android添加为平台时..

phonegap local build android

我明白了......

[error] Please install Android target 17 (the Android 4.2 SDK). Make sure you have the latest Android tools installed as well. Run `android` from your command-line to install/update any missing SDKs or tools.

我看到类似的问题仍然没有答案...... Phonegap 3.0 CLI issue android target number in build app

当我安装android-17时它工作正常,这很酷,但我需要使用android-18所以我可以使用BLE。

我看到Fil Maj明显在7月31日解决了这个问题...... https://git-wip-us.apache.org/repos/asf?p=cordova-android.git;a=commitdiff;h=c2c5f710

..但我似乎没有在我下载的phonegap版本中修复此问题。我想也许它只是在cordova,所以我也安装了它,但遇到了同样的问题。

我试图直接攻击包含检查的npm目录中的四个js文件,但是没有采取(即:错误仍然存​​在)。

任何人都可以建议......

1)如何在修复问题的情况下下载一个版本的phonegap / cordova,或者

2)如何告诉phonegap / cordova哪个版本的android我想定位

非常感谢...

11 个答案:

答案 0 :(得分:11)

在Windows中查找文件android_parser.js,它是路径:

C:\Users\USER_NAME\AppData\Roaming\npm\node_modules\cordova\src\metadata

更改文件android_parse.js

如果您正在通过PhoneGap而不是Cordova提供申请:

C:\Users\USER_NAME\AppData\Roaming\npm\node_modules\phonegap\node_modules\cordova\src\metadata\android_parser.js

转到行:57

if (output.indexOf('android-17') == -1) {

并将其更改为:

if (output.indexOf('android') == -1) {

这将让你不了解未来:)

但是你可以发现这个Error

[Error: An error occured during creation of android sub-project.
]

要修复它你必须转到这条路径:

C:\Users\USER_NAME\.cordova\lib\android\cordova\3.1.0\framework\project.properties

并更改此行:

target=android-17

对此:

target=android-19

或者您的Android SDK版本

如果您想使用 Android 2.2 怎么办?

简单地转到:

Your_Project_Folder/platforms/android/AndroidManifest.xml

并改变:

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" />

要:

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="19" />

之后将项目导入IDE

享受:)

答案 1 :(得分:6)

如果有人使用cordova和/或Chrome移动应用工具链来到这里。我已将platforms/android/project.properties直接编辑为target=android-19并构建了它。

欢呼声

答案 2 :(得分:2)

只需打开AndroidManifest.xml文件并设置minimun和目标版本即可。在你的情况下18。 对问题Phonegap 3.0 CLI issue android target number in build app的答案相同。enter image description here AndroidManifest.xml 文件位于: YOURPROJECT \ platforms \ android 。如果您需要更多帮助,请尽量帮助您。 发布您的AndroidManifest.xml文件,以便我查看。

答案 3 :(得分:2)

转到函数check_requirements中的\ cordova \ src \ metadata \ _ android_parser.js,将第56,57,66行从17更改为18.然后就可以了。

答案 4 :(得分:2)

确保您拥有最新版本:

  • PhoneGap:sudo npm update -g phonegap
  • Android SDK:根据您的安装方式,如果您通过brew:brew update android-sdk
  • 执行此操作

然后运行android,并下载最新的API。

然后,在运行phonegap build android时,PhoneGap将默认使用最新的API。

如果您需要更新当前项目,请在项目文件夹中运行:

phonegap platform update android

现在,如果再次运行build,它应该使用最新版本。

答案 5 :(得分:2)

我已经通过npm安装了cordova,因此为了使其工作,我修改了target ~/.cordova/lib/npm_cache/cordova-android/3.6.3/package/framework/project.properties

答案 6 :(得分:1)

我认为你有错误版本的Phonegap,我说0.3.0-0.15.0。我认为Fil的修复肯定会进入最终构建,所以我认为你在安装Phonegap时必须做些傻瓜。这就是我所做的:

npm install cordova -g(或者我想在你的情况下它将是Phonegap而不是cordova。)这将全局安装cordova(或phonegap),以便您可以使用'cordova'命令在任何地方访问它。 如果您已安装,请尝试npm update而不是npm install

导航到工作区位置,例如C:\workspace

键入cordova create MyApp,它将在C:\workspace\MyApp创建一个Cordova项目。工作区将包含以下文件夹:

/www/ - 放置所有HTML和JavaScript的地方

/platforms/ - 这将包含android,ios和您添加的任何其他平台的文件夹。来自/ www /的东西将被复制到每个平台的正确位置。您可以在此处编辑特定于平台的文件,例如,要更改target-sdk,您要编辑/platforms/android/AndroidManifest.xml

/plugins/ - 当您执行cordova plugin add {link}时,这就是所有插件代码的用武之地。我想不出你为什么要在这个文件夹中编辑任何东西的原因(但可能有一些好的。)

/merges/ - 此处的所有文件都会与/www/中的相应文件合并,并推送到/platforms/,请参阅documentation.

运行create命令后,需要添加平台:

cd MyApp

cordova platform add android -d - -d为我们提供调试信息

cordova build android - 这将构建Android应用,您会看到/www/中的内容被复制到/platforms/android/assets/www

一 如果您仍然遇到问题,是否尝试了输出中的内容,即从命令行运行android?这将打开“Android SDK Manager”,确保您安装了最新版本的SDK 以及最新的Android SDK工具和Android SDK平台工具(我的是22.0.5)和18.0.1,分别。)

如果您从未创建过Android模拟器对象(使用AVD管理器),也可能会出现问题,尽管听起来不太可能。

答案 7 :(得分:1)

C:\用户\ USER_NAME.cordova \ lib中\机器人\科尔多瓦\ 3.1.0 \框架\

应该在bumerang的anser

C:\用户\ USER_NAME.cordova \ lib中\机器人\科尔多瓦\ 3.1.0 \框架\ project.properties

答案 8 :(得分:1)

PhoneGap Build现在支持设置Android SDK版本的选项。它记录在here,但基本上你在config.xml中需要的是:

  <preference name="android-targetSdkVersion" value="18" />

然后它将在AndroidManifest.xml中正确设置属性。

注意:这应该仅适用于PhoneGap构建,但我使用的是Ionic命令行工具(在Cordova 5.1.1上),它似乎对我也很好。

答案 9 :(得分:0)

release notes of version 3.1.0读取,它说:

  
      
  • 增加Android 4.3 API级别18的版本检查
  •   
  • 将项目升级到Android 4.3
  •   

因此,升级到Phonegap 3.1.0应该可以解决问题。

答案 10 :(得分:0)

你在错误的地方家伙

你应该尝试这个: phonegap本地构建android

这会将android添加到你的平台文件夹......