Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY]

  • 10 Antworten
  • Neuester Beitrag
Diskutiere Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY] im Android App Entwicklung im Bereich Betriebssysteme & Apps.
lordzwieback

lordzwieback

Erfahrenes Mitglied
Guten Morgen,

ich habe folgendes Problem:
Meine App soll QR-Codes einlesen und den Content weiterverarbeiten. Habe mich ein wenig im Netz umgeschaut und bin auf dieses Tutorial gestoßen -> Android Example - Programmatically Scan QR Code and Bar Code - Truiton

Habe also eine neue Activity (QRActivity) angelegt und die Schritte im Tutorial 1:1 befolgt. Nun wollte ich das ganze mal testen, also Smartphone ran und "Run"...

Hier liegt das Probelm. Er arbeitet erst 2 Minuten rum bis "Gradle build finished..", danach erscheint eine Meldung:
Installation failed with message INSTALL_FAILED_MISSING_SHARED_LIBRARY. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.

Hab mir zuerst nichts dabei gedacht, da diese Meldung auch manchmal kommt, wenn ich mein Projekt vom Macbook wieder aufn Windows PC schiebe und umgekehrt. Klicke ich jetzt aber OK und warte, bis er die alte Version deinstalliert und die neue installiert hat erscheint folgende Fehlermeldung:
DELETE_FAILED_INTERNAL_ERROR
Error while Installing APK

Falls zum Lösen des Problems auch Code vorhanden sein muss, sagt Bescheid. Im Prinzip ist es aber 1:1 der Code aus dem Tutorial in einer eigenen Activity.
 
swa00

swa00

Moderator
Teammitglied
Moin Moritz,

a) einmal die bereits bestehende apk händisch vom Smartphone löschen
b) Clean/Rebuild
c) AndroidStudio neu installieren ( SDK kannst du stehen lassen)
d) deine verwendete Library will nicht mit Gradle (SDK level Unterschiede) ?
 
lordzwieback

lordzwieback

Erfahrenes Mitglied
a) Die App scheint nicht mehr auf dem Handy vorhanden zu sein - also wohl doch deinstalliert worden
b) Mit Clean/Rebuild meinst du unter "Build" "Clean Project" und "Rebuild Project"? Falls ja, habe ich gerade getestet, bringt anscheinend nichts
c) Kann ich eine neue Installation einfach drüberinstallieren/installieren ohne das etwas kaputt geht?
d) Welche Library? :D Und ich habe an der MinSDK oder MaxSDK nichts verändert

Ich versuch gleich mal eine ältere Version der App neu aufs Handy zu spielen. Wenn das funktioniert muss es ja am Code aus dem Beispiel hängen, oder? (Habe seit der letzten "App-Version" nichts mehr programmiert außer jetzt die neue QR Funktion)

UPDATE: Die App Version ohne die QR Activity braucht zwar auch etwas länger, bis der gradle build fertig ist, aber läuft wie sie soll, wird korrekt installiert..
UPDATE2: Lade mir gerade mal das Beispielprogramm des OPs des Tutorials runter und versuch das aufs Handy zu kriegen [hat funktioniert, BeispielApp läuft]
 
Zuletzt bearbeitet:
swa00

swa00

Moderator
Teammitglied
[hat funktioniert, BeispielApp läuft]
dann haste irgend ne Mischung drin , die nicht gemocht wird
Wenn ich so eine Verzweiflung habe , mache ich mir einen neues Modul, setzte da den
Quellcode der library rein ( nicht Dependecies / jar / aar) und mach mein eigenes Ding

Ist zwar fleissarbeit , geht aber dann

Erst vor zwei tagen so ein Ding gehabt
 
lordzwieback

lordzwieback

Erfahrenes Mitglied
@swa00 Habs rausgefunden... habe die Codes mal verglichen. In der Manifest lag mein Fehler.

RICHTIG:
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.truiton.mobile.vision.qrcode"
          xmlns:android="http://schemas.android.com/apk/res/android">
 
    <uses-feature
        android:name="android.hardware.camera"
        android:required="true"/>
    <uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <meta-data
            android:name="com.google.android.gms.vision.DEPENDENCIES"
            android:value="barcode"/>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
 
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
 
</manifest>
FALSCH:
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.truiton.mobile.vision.qrcode"
          xmlns:android="http://schemas.android.com/apk/res/android">
 
    <uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <meta-data
            android:name="com.google.android.gms.vision.DEPENDENCIES"
            android:value="barcode"/>
        <uses-feature
        android:name="android.hardware.camera"
        android:required="true"/>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
 
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
 
</manifest>
Man beachte die Positionierung des <uses-library>... Jetzt steh ich zwar vor anderen Problemen, aber ich fuchs mich da jetzt erstmal rein. Danke für die Hinweise.
-- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
Ich mach dafür jetzt mal keinen neuen Thread auf, da es einigermaßen noch zum Thema passt.

Folgendes:
Ich habe in mein Menü auf der MainActivity einen neuen Testeintrag eingefügt, um darauf ein Intent auf die QRActivity zu machen.. sieht so aus:
Code:
case R.id.testmenuentry:
                Intent intentTest = new Intent(MainActivity.this, QRCodeActivity.class);
                startActivity(intentTest);
                break;
Es wird auch eine Activity geöffnet. Aber aus irgendeinem Grund öffnet sich da eine alte Version meiner MainActivity. WTF? Habe testweise eine neue leere Activity erstellt, um darauf mal einen Intent zu machen - funktioniert einwandfrei (auf die richtige Activity). Ich verstehs nicht....
 
swa00

swa00

Moderator
Teammitglied
Saaaaach, haste heute deinen "AllesBlöd"-Tag ? :)

Das Erste , was mir dazu einfällt - und du bist ja nicht der DAU - Cache etc ..

Lösche mal physisch deinen build-Ordner und mach nochmal ein Clean/Rebuild/Sync

Da kann doch irgendwas nicht stimmen ....
(Kommt davon wenn man mit dem Win10 Mist arbeitet) *duckundweg* :)
 
lordzwieback

lordzwieback

Erfahrenes Mitglied
Ich glaubs auch... hab den Intent jetzt auch mal noch auf nen Testbutton gesetzt und ne neue Activity erstellt plus den QR Code neu rein... nichts. Öffnet wieder die alte Activity (woher zum Teufel die auch immer kommt.. diese Activity wurde von mir vor Wochen schon umgestaltet).

Werde deine Tipps mal testen und danach berichten, wies gelaufen ist. Ob das mit Win10 zusammenhängt.. ich bezweifle es. Aber ich würd auch lieber durchgängig auf meinem Mac coden. :D
 
swa00

swa00

Moderator
Teammitglied
Du weisst schon , dass man hin und wieder AS neu installieren muss ?
(Das ist jetzt kein Scherz)

Ich mach das immer dann so
C\user\appdata\ .... android\sdk in sdk_save umbennen ( sicherheit)
AS deinstallieren - usereinstellungen beibehalten
die 1,5 Gig laden , neu installieren - SDK's laden

ist lästig , hilft mir aber
 
lordzwieback

lordzwieback

Erfahrenes Mitglied
Ich habs rausgefunden, aber das ist fast zu peinlich um es hier zu posten... :D

... man sollte wenn man Code kopiert und einfügt (was ich im Normalfall nicht mache, mir wars nur grad zu doof, das alles abzutippen) auch genau drauf achten, was man anpassen muss. Hab alles angepasst bis auf ...
Code:
setContentView(R.layout.HIER_RICHTIGES_ACTIVITYLAYOUT_EINTRAGEN)
Aber danke für den Hinweis mit AS. Warum ist aber nicht klar, einfach prophylaktisch? :D
 
swa00

swa00

Moderator
Teammitglied
*grööööööööööööööööööööööööööööööööööhl*

Mach dir mal nen Kafee und gehe mal ne Runde spazieren :)

Jetzt biste endlich angekommen , im Club der Gestörten :)

Aber danke für den Hinweis mit AS. Warum ist aber nicht klar, einfach prophylaktisch?
Nee ,wenn er genau so was ähnliches macht , wie eben beschrieben .
 
lordzwieback

lordzwieback

Erfahrenes Mitglied
Kaffee ok, aber spazieren? Ich krieg n Frischluftschock.
Ne mal ernsthaft, wenn ich momentan nicht son doofen Zeitdruck hätte wär mir das sicher früher aufgefallen. Aber hauptsache es fällt auf. Danke dir für die Unterstützung.