INSTALL_FAILED_MISSING_SHARED_LIBRARY и является Use-Library, необходимой для библиотечных проектов - PullRequest
2 голосов
/ 28 марта 2012

Короче говоря, я хотел бы знать, необходим ли тег "Использовать-библиотеку" в манифесте Android для использования другого проекта Eclipse в качестве библиотеки.

Мой вопрос похож на найденный здесь , я искал дополнительные разъяснения.Я пытаюсь использовать проект Android в качестве библиотеки (ничего общего с Google Maps).Приложение компилируется и устанавливается, но падает во время выполнения, когда не удается найти некоторые файлы в данных своего приложения.Я хочу убедиться, что я добавляю библиотеку правильно, поэтому я могу сосредоточиться на том, почему отсутствуют данные приложения.

Я установил флажок «Есть библиотека» в его свойствах в Eclipse и добавил ссылку на него.в меню свойств моего приложения.Нужно ли изменять манифест моего приложения, чтобы использовать проект библиотеки?Я нашел тэг «Use-Library» на Android Developers, но ранее упомянутый пост, кажется, указывает, что это только для встроенных библиотек.Добавление тега приводит к ошибке «INSTALL_FAILED_MISSING_SHARED_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>

Ошибка (без «использования-библиотеки»):

  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 

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Я хотел бы знать, необходим ли тег "Использовать-библиотеку" в манифесте приложения для Android, чтобы использовать другой проект Eclipse в качестве библиотеки.

Абсолютно нет. <uses-library> - это только для библиотек, которые могут быть частью встроенного программного обеспечения или нет, например, надстройка Google Maps для Android.

Нужно ли изменять манифест моего приложения, чтобы использовать проект библиотеки?

Не совсем. Возможно, вам придется изменить манифест, чтобы использовать вещи в библиотеке (например, сделать действия или услуги доступными). Но вам не нужно изменять манифест, просто чтобы добавить проект библиотеки в целом.

1 голос
/ 28 марта 2012

Мне не нужно было добавлять библиотеку пользователей, когда я добавлял проект библиотеки в свое приложение. Вы должны убедиться, что библиотека также открыта в Eclipse при попытке развернуть проект. Баночка также должна появиться в папке «Библиотечные проекты».

...