Rhodes を使用して Android アプリケーションを開発しています。Rhodes に HTTpary gem をインストールしました。アプリケーションの一番上に "require 'httparty'" というステートメントを書いていると、"No such file to load" のようなエラーが表示されます。この問題を解決するにはどうすればよいですか?
3 に答える
Rhodes 環境があるため、これは単なる推測です。ただし、これが通常の Ruby スクリプトである場合は、最初に必要になりrequire 'rubygems'
ます (使用済みの rubygem を想定して...)。
ドキュメントから、「Rhodes アプリケーションへの Ruby 拡張ライブラリの追加」で始まるセクションまで下にスクロールします。外部ライブラリをアプリケーションに含める 3 つの方法について詳しく説明します。以下にまとめます。
- 個々のアプリケーションに Ruby 拡張機能を追加する
- ruby ライブラリを個々のアプリケーションに追加する
- Ruby ライブラリを Rhodes フレームワークに追加して、すべてのアプリケーション用にビルドします
ベースの Rhodes フレームワークには、含めるのに十分一般的であると見なされるもののみが含まれているため、ビルドされたアプリケーション パッケージのサイズを小さく抑えることができます。基本フレームワークに含まれていないものは、前述の方法を使用してアプリケーションに含めることができます。
Motorola のドキュメントは恐ろしいものです。できることなら手伝わせてください。まず、Ruby コードの定数$LOAD_PATHS
を調べて、Rhodes が検索するパスのリスト全体を確認します。.rb
このパス内のすべてのファイルは、自動的に で使用できるようになりrequire
ます。
次に、このライブラリを Rhodes フレームワーク全体に追加するか、アプリだけに追加するかを決定する必要があります。個人的には、一度に 1 つのアプリを選択します。これにより、非互換性の可能性が減り、アプリには引き続きすべてのライブラリが提供されます。rhodes-*version/lib/framework
アプリにライブラリを追加する場合、ドキュメントではそれを directory に追加することを提案していますapp/lib
が、この正確なパスのみが検索されることに注意してください。そのため.rb
、require ステートメントと同じ名前のファイルが直接ない場合このパスの下では、自動的に検出されません。これについて言及するのは、共通の構造は、ライブラリ名が直接配置された単一のファイルでlib
あり、実際のライブラリの内容は同じ名前のフォルダー内にあるためです。
例:mime-types
ライブラリは :lib/mime-types.rb
とlib/mime/
で構成されており、名前が異なり、Ruby に含めるとまさにこの種の混乱につながる可能性があります。