首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android/PhoneGap:在插件开发中使用第三方库

Android/PhoneGap:在插件开发中使用第三方库
EN

Stack Overflow用户
提问于 2013-10-10 22:18:34
回答 2查看 10.7K关注 0票数 8

我正在开发一个PhoneGap/Cordova插件,它应该提供一个套接字来发送和接收OSC消息(Open Sound Control)。为此,我想使用JavaOSC,但我不确定如何将该库包含到我的项目中。

我正在使用Android Studio,我基本上是按照this tutorial来设置我的项目的。首先,我将原始的JavaOSC类文件放在与OSCPlugin.class相同的目录中,并将导入声明放在OSCPlugin.class的to中:

代码语言:javascript
复制
import com.illposed.osc;

这不管用。

作为下一步,我尝试在项目的模块设置中添加来自maven的库。我可以从maven下载jar文件,并将其安装到/platform/android/libs中。在'android‘模块的设置中,我可以看到'Android API 17’应该用作SDK,包括cordova-3.1.0和com.illposed.osc:javaosc-core:0.2 -都是激活的。我可以在Android Studio的导航器中看到cordova-3.1.0.jar和javaosc-core-0.2.jar,其中包含com.illposed.osc。

然而,当我尝试编译我的项目时,我得到了:

代码语言:javascript
复制
Gradle: cannot find symbol class osc

从包含上述导入声明的OSCPlugin.class内触发

我几乎没有Java的经验,更没有Android开发的经验。但我有兴趣解开这个谜语,开始吧。我已经搜索了Java文档,但问题不仅仅存在于Java中,而是存在于Android项目的结构中。

如果有人能在这个问题上提供一些线索,我将不胜感激。任何提示都是非常感谢的!

EN

回答 2

Stack Overflow用户

发布于 2014-01-14 17:36:40

对于我的一个Phonegap项目,我需要Apache Commons Net,尝试遵循这些steps

代码语言:javascript
复制
...
<source-file src="src/android/xxx.jar" target-dir="libs" framework="true" />
<source-file src="src/android/MyPlugin.java" target-dir="src/com/mypackage" />
...

不幸的是,没有成功。诀窍是将第三方库嵌入到另一个插件中(遵循插件结构)。将org.apache.commons.net作为顶级目录:

代码语言:javascript
复制
    org.apache.commons.net
     +src 
       +android(this is where the .jar is located)
     +www (empty, not referencing any .js)
     +plugin.xml

为简洁起见,plugin.xml如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
           id="org.apache.commons.net"
      version="0.1.0">
    <name>org.apache.commons.net</name>
    <description>org.apache.commons.net</description>
    <license>Apache License, Version 2.0</license>
    <keywords>org.apache.commons.net</keywords>

    <!-- android -->
    <platform name="android">
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="org.apache.commons.net">
                <param name="android-package" value="org.apache.commons.net"/>
            </feature>
        </config-file>

        <source-file src="src/android/commons-net-2.2.jar" target-dir="libs" framework="true" />    
     </platform>          
</plugin>

假设org.apache.commons.net目录位于本地git存储库中,将其添加到项目中非常简单,如下所示:

代码语言:javascript
复制
phonegap local plugin add /path/to/your/org.apache.commons.net
票数 7
EN

Stack Overflow用户

发布于 2014-01-14 19:25:18

要添加外部库,基本上需要做的就是将jar复制到/libs文件夹。

在这里,您的源代码中有一个错误的导入。

import用于通过指定包名和类名来导入类,在这里您只指定类名,因此出现错误“无法找到符号类osc”是因为没有类osc。

您应该使用以下任一

  • import com.illposed.osc.*;如果要从package
  • 导入所有类,或者要为要使用的包中的每个类添加导入,请执行以下操作。

如果您希望使用CLI或phonegap build安装该插件,您还必须更新plugin.xml以添加jar文件的副本。

ps如果你不知道,你将不能使用com.illposed.osc.ui的类,因为他们使用的是swing,并且是为jvm虚拟机而不是android设计的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19298346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档