2013-10-10 6 views
7

私は、OSCメッセージ(Open Sound Control)を送受信するためのソケットを提供するはずのPhoneGap/Cordovaプラグインに取り組んでいます。その目的のために私はJavaOSCを使用したいと思いますが、ライブラリを私のプロジェクトにどのように組み込むのかは不明です。Android/PhoneGap:プラグイン開発でサードパーティのライブラリを使用

私はAndroid Studioを使用しており、基本的にはthis tutorialに従ってプロジェクトをセットアップしています。最初に私は私のOSCPlugin.classと同じディレクトリに生JavaOSCクラス・ファイルを置き、私のOSCPlugin.classのにでimport宣言を置い:

動作しませんでした
import com.illposed.osc; 

を。

次のステップとして、プロジェクトのモジュール設定内でmavenからライブラリを追加しようとしました。私はmavenからjarファイルをダウンロードして、/ platforms/android/libsにインストールすることができました。モジュール 'android'の設定では、「Android API 17」は、cordova-3.1.0とcom.illposed.osc:javaosc-core:0.2の両方を含む、SDKとして使用されるはずです。 Android Studio内のナビゲータにcom.illposed.oscが含まれているcordova-3.1.0.jarとjavaosc-core-0.2.jarが表示されます。 OSCPlugin.class内からトリガー

Gradle: cannot find symbol class osc 

上記の輸入申告

が含まれている私は、Javaと非常に少ない経験があり、さらに少ないと:私が手に私のプロジェクトをコンパイルしようとすると、しかし

、 Androidの開発。しかし、私はこの謎を解くことに興味があり、始めましょう。私はJavaのドキュメントを検索しましたが、問題は単にJava内にあるのではなく、Androidプロジェクトの構造内にあります。

誰かがこの問題を明らかにしてくれれば感謝します。どんなヒントも高く評価されています!成功せず、残念ながら

... 
<source-file src="src/android/xxx.jar" target-dir="libs" framework="true" /> 
<source-file src="src/android/MyPlugin.java" target-dir="src/com/mypackage" /> 
... 

:私はこれらのstepsに従うことをしようと、Apache Commons Netを必要と私のPhoneGapプロジェクトの一つのために

答えて

4

。そのトリックは、他のプラグインに(他のプラグインの構造にしたがって)サードパーティのライブラリを埋め込むことでした。次のように簡潔にするため

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

、plugin.xmlの:最上位ディレクトリとしてorg.apache.commons.netを持つ

<?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のレポに位置していると仮定すると、

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

外部ライブラリを追加するには、基本的に/ libsフォルダにjarをコピーするだけです。

ここでは、あなたのソースに不正なインポートがあります。

インポートは、パッケージ名の後ろにクラス名を指定してクラスをインポートするために使用されます。クラス名が指定されていないため、クラス名が指定されていないため、クラス "osc" 。

あなたがパッケージ

  • からすべてのクラスをインポートしたり、あなたが使用しようとしているパッケージから各クラスのインポートを追加したい場合は、

    • import com.illposed.osc.*;のいずれかを使用する必要があります。

    また、CLIまたはphonegapビルドを使用してプラグインをインストール可能にするには、plugin.xmlも更新してjarファイルのコピーを追加する必要があります。

    ps知らない場合は、com.illposed.osc.uiのクラスをswingを使用していて、jvm用に設計されていてAndroid用ではないように使用することはできません。

  • 関連する問題