在使用Android Studio编译Cordova时出现"java: package org.apache.cordova does not exist"的错误。

8

我是新手,刚开始学习Android开发。我已经下载了Cordova(2.8版,可能需要升级)、Java JDK(1.7版)以及最新版本的Android Studio、Android SDK,并安装了其中所有4.x版本的包,还安装了Ant(1.9.2版)。

就目前而言,一切似乎都运行正常。问题在于,当我创建一个Cordova项目并通过命令行将其加载到Studio中时,使用导入功能,不进行任何调整,只接受(据我在某个博客上读到的),一切似乎都可以正常加载,项目也在Studio中存在,但当我尝试进行制作时,出现“java: package org.apache.cordova does not exist”的错误。随之而来的是几个其他错误,我觉得它们可能有关联。我没有做任何花哨的事情,只是想让这个股票起步。

有人知道我缺少什么吗?我需要复制文件到某个地方或编译额外的东西吗?还是我使用的某个版本不正确?谢谢!

2个回答

3

经过数小时的搜索和试错(虽然大多数都是错误),我发现问题出在缺少cordova-*.jar文件。该文件需要使用android cordova目录下的framework文件夹中的ant jar进行构建。这一步在大量文档中被省略了。构建完成后,我只需将其复制到我的项目的'libs'文件夹中,一切都加载并运行了,尽管编译器有一个关于弃用项目的警告,但创建一个ant构建并选择“外部编译器”可以解决此警告。


这个解决方案还解决了我在使用Phonegap 3.0命令行界面构建Android时遇到的故障。一旦cordova-*.jar放置好了,“phonegap local run android”就可以正常工作了。 - mattsahr
请问您能否进一步解释一下如何创建cordova-*.jar文件以及创建后在哪里找到它? - Steven Anderson
这似乎终于被记录下来了,这应该会帮助你了解如何构建cordova-*.jar文件(步骤#1和#2)[链接](http://cordova.apache.org/docs/en/3.1.0/guide_platforms_android_webview.md.html) - CICDC
是的,framework/ 文件夹似乎不再存在了。现在有一个 CordovaLib/ 文件夹。但在其中运行 ant jar 会失败。 - JohnO

0

Android Studio使用Gradle项目布局。这意味着主要的Java文件应该在/src/main/java目录下。如果Cordova生成了不同的结构(看起来像是旧的Ant结构),则需要将其源文件夹添加到build.gradle中。

android {
...

    sourceSets {
        main {
            java {
                include 'some/wanted/package/**'
                include 'another/wanted/package/**'
                exclude 'some/unwanted/package/**'
            }
        }
    }
}

这是文件所在的位置: 输入图像描述


抱歉我太菜了,不知道这个应该放在哪里。 - CICDC
我将它添加到了主要的.java文件中,但编译器不喜欢它。我在项目中搜索了sourceSets、其他包含项和android关键字,但找不到它们。 - CICDC
将其添加到 build.gradle 文件中。有两个名为 build.gradle 的文件。使用位于模块内部的文件,而不是项目根目录中的文件。该文件应已经具有 android {} 闭包。 - robotoaster
也许我漏掉了什么,但我没有那个文件,而且结构与你展示的完全不同。我有一个build.xml文件。也许当我导入Cordova项目时,我应该在第二步中使用Gradle布局?我尝试过了,但我没有安装Gradle(它不在Cordova说明中)。这是我还需要安装的东西吗? - CICDC
所以问题在于,你的项目根本不是Android Studio项目。你有两个选择。使用Eclipse/ADT或在Android Studio中创建新项目并将所有cordova源文件添加到/src/main/java、res到/src/main/res、manifest到/src/main。 - robotoaster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接