8

私は、OSC メッセージ (オープン サウンド コントロール) を送受信するためのソケットを提供することになっている PhoneGap/Cordova プラグインに取り組んでいます。そのためにJavaOSCを使用したいのですが、ライブラリをプロジェクトに組み込む方法がわかりません。

私は Android Studio を使用しており、基本的にこのチュートリアルに従ってプロジェクトをセットアップしました。まず、生の JavaOSC クラス ファイルを OSCPlugin.class と同じディレクトリに配置し、インポート宣言を OSCPlugin.class の to に配置しました。

import com.illposed.osc;

それはうまくいきませんでした。

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

ただし、プロジェクトをコンパイルしようとすると、次のようになります。

Gradle: cannot find symbol class osc

上記のインポート宣言を含む OSCPlugin.class 内からトリガーされます

Java の経験はほとんどなく、Android 開発の経験はさらに少ないです。しかし、私はこのなぞなぞを解いて始めたいと思っています。Java ドキュメントを検索しましたが、問題は単に Java 内にあるのではなく、Android プロジェクトの構造内にあります。

誰かがこの問題に光を当てることができれば幸いです。どんなヒントでも大歓迎です!

4

2 に答える 2

7

私のPhonegapプロジェクトの1つでは、Apache Commons Netが必要で、次の手順を実行しようとしました:

...
<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ディレクトリがローカルの git リポジトリにあると仮定すると、それをプロジェクトに追加するのは次のように簡単です。

phonegap local plugin add /path/to/your/org.apache.commons.net
于 2014-01-14T09:36:39.747 に答える
1

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

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

import は、パッケージ名の後にクラス名を指定してクラスをインポートするために使用されます。ここではクラス名のみを指定するため、「シンボル クラス osc が見つかりません」というエラーが発生するのは、クラス osc がないためです。

どちらかを使用する必要があります

  • import com.illposed.osc.*;パッケージからすべてのクラスをインポートする場合
  • または、使用するパッケージから各クラスのインポートを追加します。

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

ps わからない場合は、com.illposed.osc.ui のクラスを使用することはできません。これは、swing を使用しており、android ではなく jvm 用に設計されているためです。

于 2014-01-14T11:25:18.450 に答える