2

つまり、別のEclipseプロジェクトをライブラリとして使用するために、アプリのAndroidマニフェストで「uses-library」タグが必要かどうかを知りたいのです。

私の質問はここで見つかったものと似ています、私はいくつかの追加の説明を探していました。Androidプロジェクトをライブラリとして使用しようとしています(Googleマップとは関係ありません)。アプリはコンパイルおよびインストールされますが、アプリケーションデータで一部のファイルが見つからない場合、実行時にクラッシュします。ライブラリを正しく追加していることを確認して、アプリケーションデータが欠落している理由に集中できるようにします。

Eclipseのプロパティで[ライブラリ]チェックボックスを選択し、アプリケーションのプロパティメニューにそのライブラリへの参照を追加しました。ライブラリプロジェクトを使用するには、アプリのマニフェストを変更する必要がありますか?Androidデベロッパーで「uses-library」タグを見つけましたが、前述の投稿は、これが組み込みライブラリ専用であることを示しているようです。タグを追加すると、「INSTALL_FAILED_MISSING_SHARED_LIBRARY」エラーが発生します。

マニフェストに問題がない場合は、アプリデータの質問について別の投稿を開始できます。「uses-library」がGoogle以外のライブラリに関連しているかどうかについての決定的な回答が必要でした。ありがとう!

私のマニフェスト:

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="tadams.scTest"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <!-- <uses-library android:name="net.sf.supercollider.android" />-->
        <activity
            android:name=".HelloSuperColliderActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

エラー(「uses-library」なし):

  03-24 00:20:43.057: D/dalvikvm(539): Not late-enabling CheckJNI 
    (already on) 
    03-24 00:20:43.557: W/dalvikvm(539): Exception Ljava/lang/ 
    UnsatisfiedLinkError; thrown while initializing Lnet/sf/supercollider/ 
    android/SCAudio; 
    03-24 00:20:43.566: D/AndroidRuntime(539): Shutting down VM 
    03-24 00:20:43.566: W/dalvikvm(539): threadid=1: thread exiting with 
    uncaught exception (group=0x409c01f8) 
    03-24 00:20:43.597: E/AndroidRuntime(539): FATAL EXCEPTION: main 
    03-24 00:20:43.597: E/AndroidRuntime(539): 
    java.lang.ExceptionInInitializerError 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    tadams.scTest.HelloSuperColliderActivity.onCreate(HelloSuperColliderActivit y.java: 
    27) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    android.app.Activity.performCreate(Activity.java:4465) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 
    1049) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 
    1920) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 
    1981) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    android.app.ActivityThread.access$600(ActivityThread.java:123) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    android.os.Handler.dispatchMessage(Handler.java:99) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    android.os.Looper.loop(Looper.java:137) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    android.app.ActivityThread.main(ActivityThread.java:4424) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    java.lang.reflect.Method.invokeNative(Native Method) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    java.lang.reflect.Method.invoke(Method.java:511) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    com.android.internal.os.ZygoteInit 
    $MethodAndArgsCaller.run(ZygoteInit.java:784) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    dalvik.system.NativeStart.main(Native Method) 
    03-24 00:20:43.597: E/AndroidRuntime(539): Caused by: 
    java.lang.UnsatisfiedLinkError: Couldn't load sndfile: findLibrary 
    returned null 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    java.lang.Runtime.loadLibrary(Runtime.java:365) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    java.lang.System.loadLibrary(System.java:535) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      at 
    net.sf.supercollider.android.SCAudio.<clinit>(SCAudio.java:56) 
    03-24 00:20:43.597: E/AndroidRuntime(539):      ... 15 more 
4

2 に答える 2

2

別のEclipseプロジェクトをライブラリとして使用するために、アプリのAndroidマニフェストで「uses-library」タグが必要かどうかを知りたいのですが。

絶対違う。Android用のGoogleマップアドオンなど、ファームウェアの一部である可能性があるライブラリとそうでないライブラリのみを対象としてい<uses-library>ます

ライブラリプロジェクトを使用するには、アプリのマニフェストを変更する必要がありますか?

あまり。ライブラリ内のものを使用するためにマニフェストを変更する必要がある場合があります(たとえば、アクティビティまたはサービスを利用可能にする)。ただし、一般にライブラリプロジェクトを追加するためだけに、マニフェストを変更する必要はありません。

于 2012-03-27T22:30:58.207 に答える
1

アプリケーションにライブラリプロジェクトを追加するときに、usesライブラリを追加する必要はありませんでした。ただし、プロジェクトをデプロイするときは、ライブラリがEclipseでも開いていることを確認する必要があります。jarファイルはLibraryProjectsフォルダーにも表示されます。

于 2012-03-27T22:05:05.703 に答える