cordovaandroid环境
① cordova android 怎样真机调试
1. 设置android手机为USB调试模式。步骤: menu--->设置 --->应用程序 --->开发 , 选择【USB调试】
2. 用USB连接手机和电脑,并确保成功。步骤: 在windows下执行c:adb devices, 查看手机是否已经连接成功。
3. 设置应用程序为调试模式。操作: 编辑AndroidManifest.xml 增加调试参数android:debuggable="true", 如下:
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
4. 执行真机调试操作:ECLIPSE调试对话框中,Target窗口中选择Manual,点击【debug】按钮,选择真机设备,开始调试。
注:不管是否启用ECLIPSE环境,任何Android软件只要在真机上运行发生异常,都可以在命令行窗口下查看具体异常信息:
执行:.adb logcat 可以查看到更多的系统异常消息。在这些消息中要注意查看Caused by:打 头的行,这些行指明了在哪行代码出的错误
② cordova 添加 android 如何指定版本
一般是看你在manifes酣钉丰固莶改奉爽斧鲸t里面设置的雹敏薯minSdk,低于拿粗minSdk就不能安装,如果设置了maxSdk,超过maxSdk就不能源者安装。targetSdk如果跟设备的api相同, 可能会跳过兼容性检查。
③ Cordova: 仅使用HTML/JS即可制作一个Android或者iOS的App
关于这个问题,还是看看官网是怎么说的吧:
翻译一下:
听上去蛮不错的,那么我们就开始用它来做一个app吧!
创建应用
如果按照Cordova( http://cordova.apache.org/ )官网所述,直接用npm全局安装 cordova ,并创建应用,你可能遇到以下错误:
此时不要紧张,卸载 cordova ,使用 yarn 重新安装一下,猜测可能和npm版本不兼容。
安装好 yarn 和 cordova 之后,使用cli命令 cordova create MyApp 创建project,此时你可能会遇到以下错误:
这是什么原因呢?
原来我们没有将 yarn 的bin目录加入到环境变量 path ,作为一个Windows僵尸粉,判断出这点还是不难的。执行以下命令,找到 yarn 的bin目录所在:
将 d:\Users\gy.wang\AppData\Local\Yarn\bin 此目录添加到windows环境变量 path
配置好环境,重新打开CLI窗口,我们终于可以顺利地创建 cordova 应用缺碧中,cordova使用默认模板创建好一个Project。
添加Android平台
在项目根目录下,运行命令 cordova build android 来编译你的项目,你可能遇到以下错误:
原因是啥呢?当前cordova要求的Android版本比较高,需要安装 Android SDK Platform 25 才能顺利编译,怎么办? 装!
打开 Android Studio , 安装SDK
安装成功之后,执行命令 cordova build android ,这慧信次终于成功了!
APK包成功打伏山好,这次我们运行一下,执行命令:
这次我们会遇到 环境坑四
不急,仔细看报错信息的意思是没有可用的设备或模拟器。这个简单,打开Android Studio添加一个:
再次运行 cordova run android , 哈! 这次成功了!
什么!闪退!WTF!
运行命令 cordova run android ,将APK包安装到模拟器上结果又报错了!
离成功就差一步了,别泄气!我们慢慢查找原因~
至此,APP终于搞定了!
④ 是不是只要用cordova就能开发安卓和ios了
不是,森悉知不止,此消cordova(原来的phonegap)只是跨平台解决方案之一,但是你还是需要原生的陆游android和ios环境,因为创建的项目,本质上来说,还是android和ios项目,cordova只不过是帮你组织他们而已
⑤ android studio集成cordova和安装cordova有什么不同
一般Android项目结构和目录结构一样,是这样的:
MyApp
|--build.gradle
|--settings.gradle
|--app
|-- build.gradle
|-- build
|-- libs
|-- src
|-- main
|--java
| |-- com.package.myapp
|--res
|-- drawable
|-- layout
|-- etc
由Cordova创建的项目的目录结构是这样的(项目结构见上图)
看起来很乱是不是。但是不影响使用,实际上也没必要非要改成标准格式。因为Gradle已经帮我们在配置脚本中写好了相关配置,它知道如何找到需要的文件。
按照标准的Gradle教程,项目即使没有任何模块(mole),Android Studio也会为我们生成一个对应于项目的build.gradle脚本文件的。而观察图1,Android Studio打开的Cordova项目中却没有,编译构建工作也可以正常进行,说明这个文件不是必须的。
它是在andorid、CordovaLib模块中的build.gradle脚本中的android任务的sourceSets的main属性,其中定义了Android Studio项目目录结构和真实目录的对应关系。比如android模块下的build.gradle是这样的:
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
}
详细请参考G文第一篇 '保持旧的Eclipse文件结构' 部分。
可以看到,Android Studio中目录的逻辑结构和系统中的文件夹结构是分离的,依靠的就是Gradle的配置能力。对比标准的项目目录结构,Cordova项目把android模块直接放在了项目的根下,而不是其他模块那样(比如CordovaLib模块)作为子文件夹存在,这也说明了它为什么不需要项目的build.gradle脚本,因为项目的脚本就是android模块的脚本。之后添加的模块,都是作为根目录的子文件夹存在的。
此外还有一个多出来的cordova.gradle,以及和G文名称不一致的local.properties。
Gradle脚本的详细说明
上面部分让我们对用Android Studio打开的Cordova项目有了些感性了解。它有其自已的独特性:一方面Cordova创建的项目有自己的Gradle配置脚本,另一方面又保留了自己独特的结构。接下来让我们对Gradle脚本的各个部分作较为详细的了解,同样的基础知识请参考G文或《Gradle for Android》一书。
我们看到Gradle脚本相关的文件有build.gradle(CordovaLib模块)、build.gradle(android模块)、cordova.gradle(CordovaLib模块)、settings.gradle(项目)、local.properties(SDK Location)。看起来有些不一样。
不过没关系,我们知道Gradle构建时首先要去找build.gradle脚本的。通过上面的项目结构知道,首先执行的应该是逻辑上属于android模块,但实际上位于项目根目录下的build.gradle。就从这里开始。
android模块的build.gradle脚本
打开build.gradle。首先看到一些Cordova生成的一些注释。原文就不照抄了,大意是一些授权说明信息。最后的单行注释很关键:"生成文件!请不要编辑!"。 虽然不能编辑,但一则其他的文件并没有这么写,二则做为入口文件,我们还是需要对它做一个了解。
注释后紧接着就是buildscript方法。在它里面首先是repositories方法,它告诉我们使用的库是mavenCentral。接下来是依照已经在本地安装的gradle的版本选择使用的Gradle插件版本,并且语句上面有注释可以参考,以后几乎在每条语句上面都有注释帮助我们理解并告诉我们相关参考资料的位置。
// 列表1-1。
buildscript {
repositories {
mavenCentral()
}
// Switch the Android Gradle plugin version requirement depending on the
// installed version of Gradle. This dependency is documented at
// http://tools.android.com/tech-docs/new-build-system/version-compatibility
// and https://issues.apache.org/jira/browse/CB-8143
if (gradle.gradleVersion >= "2.2") {
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0+'
}
} else if (gradle.gradleVersion >= "2.1") {
dependencies {
classpath 'com.android.tools.build:gradle:0.14.0+'
}
} else {
dependencies {
classpath 'com.android.tools.build:gradle:0.12.0+'
}
}
}
随后又使用了一个repositories任务。注释说:允许插件通过build-extras.gradle声明Maven依赖。通过extra这个名字,以及前面不要编辑的警告,它的作用可能是对这个build.gradle文件的修改或补充。其实在下面的代码中可以看到更多这方面的信息。
// 列表1-2。
repositories {
mavenCentral()
}
接下来有一个wrapper任务,查阅文档得知它用于定制Gradle Wrapper的。如果对Wrapper不了解,请参考《G》文的第一篇"使用Gradle Wrapper"部分。
// 列表1-3。
task wrapper(type: Wrapper) {
gradleVersion = '2.2.1'
}
接下来定义了一个ext属性,其中定义了一些额外属性。注释也说明了其中定义的属性需要通过环境变量、build-extras.gradle或gradle.properties设置。
ext属性中首先引用了cordova.gradle。这样就知道项目中这个文件用在哪里了。但下面并没有用到它。通过后面的代码推测它可能是供build-extras.gradle调用的。接下来一系列条件判断语句分别定义了一些属性并把它们初为null。这些属性是都以cdv开头,表示一些Cordova构建属性。接下来的代码中会看到它们的作用。最后定义了一个cdvPluginPostBuildExtras数组变量,用来向里面追加Gradle插件扩展。
// 列表1-4。
ext {
apply from: 'CordovaLib/cordova.gradle'
// The value for android.compileSdkVersion.
if (!project.hasProperty('cdvCompileSdkVersion')) {
cdvCompileSdkVersion = null;
}
// The value for android.buildToolsVersion.
if (!project.hasProperty('cdvBuildToolsVersion')) {
cdvBuildToolsVersion = null;
}
// Sets the versionCode to the given value.
if (!project.hasProperty('cdvVersionCode')) {
cdvVersionCode = null
}
// Sets the minSdkVersion to the given value.
if (!project.hasProperty('cdvMinSdkVersion')) {
cdvMinSdkVersion = null
}
// Whether to build architecture-specific APKs.
if (!project.hasProperty('cdvBuildMultipleApks')) {
cdvBuildMultipleApks = null
}
// .properties files to use for release signing.
if (!project.hasProperty('')) {
= null
}
// .properties files to use for debug signing.
if (!project.hasProperty('cdvDebugSigningPropertiesFile')) {
cdvDebugSigningPropertiesFile = null
}
// Set by build.js script.
if (!project.hasProperty('cdvBuildArch')) {
cdvBuildArch = null
}
// Plugin gradle extensions can append to this to have code run at the end.
cdvPluginPostBuildExtras = []
}
接下来这部分代码,首先判断build-extras.gradle文件是否存在,如果存在则把它应用到构建脚本中。下面的判断语句检查build-extras.gradle是否定义了列表1-4的属性。如果有就使用build-extras.gradle中的,如果没有,则按下面语句设置:
// 列表1-5。
// Set property defaults after extension .gradle files.
if (ext.cdvCompileSdkVersion == null) {
ext.cdvCompileSdkVersion = privateHelpers.getProjectTarget()
}
if (ext.cdvBuildToolsVersion == null) {
ext.cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools()
}
if (ext.cdvDebugSigningPropertiesFile == null && file('debug-signing.properties').exists()) {
ext.cdvDebugSigningPropertiesFile = 'debug-signing.properties'
}
if (ext. == null && file('release-signing.properties').exists()) {
ext. = 'release-signing.properties'
}
// Cast to appropriate types.
ext.cdvBuildMultipleApks = cdvBuildMultipleApks == null ? false : cdvBuildMultipleApks.toBoolean();
ext.cdvMinSdkVersion = cdvMinSdkVersion == null ? null : Integer.parseInt('' + cdvMinSdkVersion)
ext.cdvVersionCode = cdvVersionCode == null ? null : Integer.parseInt('' + cdvVersionCode)
上述代码表示如果没有设置列表1-4中的属性时设置它们,其中调用了cordova.gradle脚本中的方法。如前所述之后会说明这些变量的作用。
接下来这段代码,注释告诉我们,要让cdvBuild的任务依赖于debug/arch-specific,即平台相关,解决的是不同平台构建的问题。首先分成debug和release版,然后根据前面遇到过的cdvBuildMultipleApks和cdvBuildArch的变量判断是否是跨平台构建,如果是则返回一个根据架构名生成的结果。注意到这个cdvBuildArch变量,在上面列表1-4的注释中标明它由build.js设置。这个脚本位于项目目录的cordova/lib/文件夹中,没有纳入到构建中,是cordova cli构建脚本,在这里先不做探讨。
def computeBuildTargetName(debugBuild) {
def ret = 'assemble'
if (cdvBuildMultipleApks && cdvBuildArch) {
def arch = cdvBuildArch == 'arm' ? 'armv7' : cdvBuildArch
ret += '' + arch.toUpperCase().charAt(0) + arch.substring(1);
}
return ret + (debugBuild ? 'Debug' : 'Release')
}
// Make cdvBuild a task that depends on the debug/arch-sepecific task.
task cdvBuildDebug
cdvBuildDebug.dependsOn {
return computeBuildTargetName(true)
}
task cdvBuildRelease
cdvBuildRelease.dependsOn {
return computeBuildTargetName(false)
}
接下来定义了一个任务,显然作用是输出列表1-4以及后面定义过的属性值。
task cdvPrintProps << {
println('cdvCompileSdkVersion=' + cdvCompileSdkVersion)
println('cdvBuildToolsVersion=' + cdvBuildToolsVersion)
println('cdvVersionCode=' + cdvVersionCode)
println('cdvMinSdkVersion=' + cdvMinSdkVersion)
println('cdvBuildMultipleApks=' + cdvBuildMultipleApks)
println('=' + )
println('cdvDebugSigningPropertiesFile=' + cdvDebugSigningPropertiesFile)
println('cdvBuildArch=' + cdvBuildArch)
println('computedVersionCode=' + android.defaultConfig.versionCode)
android.proctFlavors.each { flavor ->
println('computed' + flavor.name.capitalize() + 'VersionCode=' + flavor.versionCode)
}
}
接下来就是构建的核心部分,每个使用android插件构建都会有的android方法。里面对android的构建定义了一些配置。这些配置的做用可以参考相关文章,这里就不赘述了。之后是在任务准备就绪后,对需要验证的任务进行验证。再下来定义的addSigningProps函数被android方法调用,用来在需要验证时,为属性文件添加验证配置。最后配置了构建后要执行的方法,并且添加了在自定义配置文件build-extras.gradle中配置的构建后执行方法的入口。
总结
综上,在Cordova项目中的android文件夹中的默认两个模块的内容作为容器和插件的源代码,有其相对于普通Gradle Android特殊的目录结构。android模块把CordovaLib和web内容结合在一起生成Crodova应用,android模块和CordovaLib通过使用共同的配置变量,保证了包括编译SDK版本在内的一致性,并提供了额外配置的入口。但万变不离其宗,这一切都是建立在了解Gradle构建工具的基础上的。
望采纳,谢谢
⑥ mac 怎么安装android studio开发环境
mac下安装android sdk环境的步骤: 1、打开 Android Studio website,点击 'Download Android Studio for Mac' 2、同意 license agreement,点击 'Download Android Studio for Mac' 3、打开下载的文件,并安装 4、启动 Android Studio 。选择 standard installation,等待向导下载并安装 Android 开发环境所需的组件。 5、安装 Android SDK Platform API 需要注意的是,Android Studio 安装向导只会下载最新的 SDK Platform(API 23),然而 Cordova 依赖的是 API 22。也就是说你必须手动安装 Android SDK Platform API 22。 1)点击 'Configure' 2)选择 'SDK Manager' 3)Android SDK Manager 被启动, 'Android 5.1.1 (API 22)' 文件夹,勾选 'SDK Platform' ,点击安装 4)同意条款,等待安装 将 ANDROID_HOME 和工具目录添加到 PATH Cordova 会自动在多个位置检测 Android SDK 的安装,包括 Android Studio 默认使用的路径。所以这一步并不是必须的,但是如果打算在命令行使用 Android tools,还是建议添加 PATH。 将环境变量 ANDROID_HOME 设置为 Android SDK 的目录。如果你使用的是 Android Studio 安装向导,默认目录应该是 ~/Library/Android/sdk 将 $ANDROID_HOME/tools 和 $ANDROID_HOME/platform-tools 添加到 PATH
⑦ ionic3 cordova插件与cordova android版本的兼容性问题
cmdnode -v(检查是否有node,-g表示全局安装,否则要配置环境变量。nodejs在官网下载推荐版recommended for most users)npm install -g cordova ionic(如已安装nodejs,可用npm安装cordova和ionic)(链接不上会报错,重新下载即可,下载太慢可分2步npm install -g cordova 和 npm install -g ionic 下载)
⑧ 怎么cordova设置android模拟器
。
废话不多说。cordova是目前较流行的移动开发平台,其可以仅仅利用前端的知识就可以开发跨平台app,是不是很酷。对于小团队或仅仅是app开发爱好者,这是一个不错的选择。具体步骤如下:
一、cordova安装
0、下载java sdk 1.6以上版本 建议下载最新的版本 比如1.8以上
1、下载Android Development Tools
已经包括了Android sdk、esclipe,解压即可使用。下载里面更新完成sdk的版本
http://bbs.phonegap100.com/thread-1456-1-1.html
2、设置系统变量
系统变量 Path后面添加:
D:\Program Files\ADT\sdk\tools;
D:\Program Files\ADT\sdk\platform-tools;
D:\Program Files\ADT\sdk\eclipse\plugins\org.apache.ant_1.8.3.v201301120609\bin
新增 JAVA_HOME,设置值为Java sdk 根目录:
C:\Program Files (x86)\Java\jdk1.6.0_10\