2013-10-10 76 views
7

我正在開發一個PhoneGap/Cordova插件,它應該提供用於發送和接收OSC消息(打開聲音控件)的套接字。爲此,我想使用JavaOSC,但我不確定如何將庫包含到我的項目中。Android/PhoneGap:在插件開發中使用第三方庫

我正在使用Android Studio,我基本上已經按照this tutorial來設置我的項目。首先我把原JavaOSC類文件在同一目錄作爲我OSCPlugin.class並放置在進口申報在我OSCPlugin.class的:

import com.illposed.osc; 

這沒有奏效。

作爲下一步,我嘗試在項目的模塊設置中添加來自maven的庫。我能夠從maven下載jar文件並安裝到/ platforms/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。

但是,試圖編譯我的項目時,我得到:

Gradle: cannot find symbol class osc 

內OSCPlugin.class從觸發包含上述進口報關

我很少有經驗的Java,甚至有少Android開發。但我有興趣解決這個謎題,並開始。我搜索了Java文檔,但問題不僅在於Java,而在於Android項目的結構。

如果有人能夠解釋這個問題,我會很感激。任何提示的高度讚賞!

回答

4

對於我的PhoneGap項目之一,我需要的Apache Commons Net,努力遵循這些steps

... 
<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作爲頂級目錄:

org.apache.commons.net 
    +src 
     +android(this is where the .jar is located) 
    +www (empty, not referencing any .js) 
    +plugin.xml 

爲了簡便起見,plugin.xml中如下:

<?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目錄位於本地混帳回購協議,將它添加到你的項目是微不足道的:

phonegap local plugin add /path/to/your/org.apache.commons.net 
1

要添加外部庫,基本上所有你需要做的就是罐子複製到/ libs文件夾。

在這裏你有一個壞的導入你的來源。

導入用於通過指定包名稱後跟類名稱來導入類,在這裏您只指定類名,因此您遇到的錯誤「無法找到符號類osc」是因爲沒有類osc 。

,如果你想從包

  • 導入所有的類或添加的進口從您要使用包中的每個類您應該使用

    • import com.illposed.osc.*;

    如果您希望使用CLI或phonegap構建安裝插件,則還必須更新plugin.xml以添加jar文件的副本。

    ps在你不知道的情況下,你將無法使用com.illposed.osc.ui中的類,因爲它們使用了swing,並且爲jvm而不是android設計。

  • 相關問題