2017-06-14 5 views
2

Ich möchte eine App auf einem Google Tango-Tablet installieren, auf dem ich root bin. Ich habe auch versucht, mit make -j und ant debug install zu kompilieren, ich habe weiterhin den Fehler [exec] Failure [INSTALL_FAILED_DEXOPT], selbst wenn es mit einem endet. Die App wird nicht auf dem Tablet installiert.Android: [exec] Fehler [INSTALL_FAILED_DEXOPT]

lief ich einen logcat und hier sind (für mich) die entsprechenden Fänge:

I/PackageManager( 929): onServiceConnected 
D/DefContainer(3008): internal storage: block size=4096, # of available blocks=28501958 
D/DefContainer(3008): internal storage: availInternalSize=116744019968, apk size=4629092 
W/ActivityManager( 929): No content provider found for permission revoke: file:///data/local/tmp/superstuff-debug.apk 
W/ActivityManager( 929): No content provider found for permission revoke: file:///data/local/tmp/superstuff-debug.apk 
I/PackageManager( 929): Copying native libraries to /data/app-lib/vmdl-1009153656 
I/PackageManager( 929): Checking for more work or unbind... 
I/PackageManager( 929): Posting delayed MCS_UNBIND 
I/PackageManager( 929): Running dexopt on: fr.my.superstuff 
I/dex2oat (3216): dex2oat: /data/dalvik-cache/[email protected]@[email protected] 
E/dex2oat (3216): Unrecognized version number in /data/app/fr.my.superstuff-1.apk: 0 3 8 
E/dex2oat (3216): Failed to open dex file '/data/app/fr.my.superstuff-1.apk' from memory 
E/dex2oat (3216): Failed to open dex from file descriptor for zip file: /data/app/fr.my.superstuff-1.apk 
W/installd( 168): DexInv: --- END '/data/app/fr.my.superstuff-1.apk' --- status=0x0100, process failed 
E/installd( 168): dexopt in='/data/app/fr.my.superstuff-1.apk' out='/data/dalvik-cache/[email protected]@[email protected]' res=256 
W/PackageManager( 929): Package couldn't be installed in /data/app/fr.my.superstuff-1.apk 
D/AndroidRuntime(3204): Shutting down VM 
E/WifiController( 929): Not handled here 155652 

Ich versuchte danach mit adb shell su durch die Verzeichnisse zu navigieren, aber ich denke, alle geschriebenen Dateien im logcat sind vorübergehend, weil Ich konnte sie nicht finden. Hier ist meine Makefile:

MAIN_ACTIVITY=fr.my.superstuff/.$(shell grep "<activity android:name" AndroidManifest.xml | cut -d\" -f2) 
SDK_PATH=/people/me/Documents/Android/sdk 
NDK_PATH=/people/me/Documents/Android/android-ndk-r10e 

APP_TAG=ARViewer 
LOG_FILTER=$(APP_TAG):V NativeApp:V VES:V AndroidRuntime:E libEGL:W StrictMode:V libc:F DEBUG:I 

all: compile-debug 

compile-debug: 
    +$(NDK_PATH)/ndk-build -j NDK_DEBUG=1 
    cp thirdparty/TangoSDK_Gemma_Java.jar libs/ 
    cp thirdparty/QCAR/libs/armeabi-v7a/libQCAR.so libs/armeabi-v7a/ 
    cp thirdparty/QCAR/libs/QCAR-hacked.jar libs/ 
    ant -Djava.compilerargs=-Xlint debug installd 

# compile-release: 
# LC_ALL= $(NDK_PATH)/ndk-build -j NDK_DEBUG=0 
# ant release installr 

# fast-compile-debug: 
# @/bin/zsh -c 'echo > /tmp/.ant-input && echo > /tmp/.ant-output && \ 
#  echo fast-compile-debug >> /tmp/.ant-input && \ 
#  (while IFS='' read -r line; do echo "$$line"; \ 
#  [[ "$$line" =~ "^ant>" ]] && exit; done \ 
#  < <(tailf /tmp/.ant-output)) | strings' 

clean: 
    ant clean 
    rm -rf obj libs 

test: 
    @urxvt -e sh -c "adb logcat -c; adb shell am start -n $(MAIN_ACTIVITY); adb logcat -s $(LOG_FILTER)" 

debug-java: 
    adb shell am start -e debug true -n $(MAIN_ACTIVITY) 
    adb forward tcp:7777 jdwp:$$(adb jdwp | tail -1) 
    jdb -sourcepath src -attach localhost:7777 

debug-native: 
    adb shell am start -e debug true -n $(MAIN_ACTIVITY) 
    $(NDK_PATH)/ndk-gdb 

log: 
    adb logcat -s $(LOG_FILTER) 

Ich habe keine Ahnung, wie dieser Fehler zu lösen. Ich sah andere Stapelfäden, aber es half mir nicht. Ich benutze weder Android Studio noch irgendeinen Editor, ich bekam diesen Code nur um ihn zu installieren und danach zu arbeiten.

EDIT: Nach einigen Suchen habe ich festgestellt, dass es etwas mit Dex-Dateien zu tun haben kann, wie im Logcat angegeben. Das Tablet verwendet Android 4.4.2 und Dex ist 038, aber ich kann nicht finden, ob sie miteinander kompatibel sind. Aber es sollte funktionieren, wie es vorher auf dem gleichen Tablet aber andersem Computer funktioniert hat. Gleicher Code.

Antwort

1

Gelöst! Es war ein Versionsproblem: auf dem Tablet läuft Android 4.4 KitKat, auf dem Computer habe ich SDK 26 installiert, aber KitKat läuft mit SDK 19, das mit sdkmanager heruntergeladen werden kann. Aber dann habe ich den Ameisenordner vermisst, also habe ich ihn heruntergeladen, aber er kommt nicht mit der Datei ant build.xml. Also nahm ich es wild aus SDK 25 (Links hier The ant/ folder is suddenly missing from Android SDK. Did Google remove it?). Jetzt installiert es!

Verwandte Themen