Unable to execute dex: Java heap space Exception bei Sqllite lib

xvchrisvx

Mitglied
Hallo!

Ich sitze heute schon den ganzen Tag an einem (sehr) nervigen Problem.
Und zwar bekomme ich folgende Exception:
"Conversion to Dalvik format failed: Unable to execute dex: Java heap space".

Allerdings nur, wenn ich meine SQllite lib in den /lib Ordner packe. Mit der Mysql lib (also diesem mysql connector) läuft alles wunderbar.

Woran kann das liegen? Und ja - ich weiß, dass Sqllite schon integriert ist, ich möchte aber diese spezielle Treiberversion verwenden.

Bitte um Hilfe! :(

Ergänzende Infos:
Es geht natürlich um Android (4.1) in Kombination mit Eclipse
 

schlingel

Gesperrter Benutzer
Woran kann das liegen? Und ja - ich weiß, dass Sqllite schon integriert ist, ich möchte aber diese spezielle Treiberversion verwenden.
Sehr schlechte Idee, denn dann überschneiden sich die Namespaces - dann kannst du nicht mehr für die Funktionalität garantieren. Das habe ich herausgefunden, wie ich Jackson verwendet habe und auf HTC-Geräten getestet habe. Denn die liefern ihre eigene Version mit. => Du musst die Packages umbenennen damit das funktioniert. Das funktioniert mit jarjar.

Wahrscheinlich benutzt die sqlite lib mehr Arbeitsspeicher
Ja genau, das ist das Problem.

Danke Br4ve aber das hilft mir nicht wirklich weiter...
Was hast du denn mit dieser Erkenntnis gemacht? Hast du die RAM-Einstellungen in der eclipse.ini hoch gedreht? (-Xms und -Xmx)
 

xvchrisvx

Mitglied
Was hast du denn mit dieser Erkenntnis gemacht? Hast du die RAM-Einstellungen in der eclipse.ini hoch gedreht? (-Xms und -Xmx)

Das habe ich ganz zu Anfang ausprobiert, höher als 900 bei beiden jeweils ging komischerweise nicht,
dann bekomme ich beim Starten von Eclipse eine "Failed to create the Java Virtual Machine"-Fehlermeldung.
Das Hochsetzen auf 900 hat den Fehler aber auch nur nach hinten geschoben, eine Lösung ist das nicht.

Jarjar habe ich mir mal angeschaut, hier das Ant-Skript:
<project name="jarjar-to-the-rescue">
<property name="jarfile" value="result.jar"/>
<path id="classpath">
<pathelement location="jarjar-1.3.jar"/>
</path>
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpathref="classpath"/>
<delete file="${jarfile}"/>
<jarjar destfile="${jarfile}">
<zipfileset src="sqlitejdbc-3.7.13.jar"/>
<rule pattern="org.**" result="org.neu.@1"/>
</jarjar>
</project>

Aber leider bekomme ich beim Ausführen dann folgende Exception:
java.lang.RunTimeException: Class file too large!
Heißt hier komme ich auch nicht weiter, da mitten drin abgebrochen wird.
 

schlingel

Gesperrter Benutzer
Das Hochsetzen auf 900 hat den Fehler aber auch nur nach hinten geschoben, eine Lösung ist das nicht.
Wenn zu wenig Speicher da ist, ist zu wenig Speicher da. Hilft alles nichts, aber mehr als 900MB kannst du schon hergeben. Meins läuft mit 1024MB.

Welches JAR (Link bitte) verwendest du überhaupt für SQLite?
 

schlingel

Gesperrter Benutzer
Vergiss es, das funktioniert sowieso nicht. Siehe diesen SO-Post.

Welchen Vorteil versprichst du dir von einer anderen SQLite-Lib als der von Android? Und wenn es umbedingt eine 3rd-Party-Lib sein muss, dann versuche eine zu finden die auf Android läuft. JDBC gehört zu den Sachen die nicht geported wurden, das wäre ca. so vielversprechend wie zu versuchen eine Swing-Lib zu verwenden.
 

xvchrisvx

Mitglied
Welchen Vorteil versprichst du dir von einer anderen SQLite-Lib als der von Android?

Weil ich etwas auf dem PC mit einer ziemlich neuen SQLite-Lib getestet habe, die extra für unseren Betrieb angepasst wurde bzw. eine spezielle Komprimierung enthält. Jetzt möchte ich das ganze nochmal auf dem Handy versuchen, die "normale" Version unterstützt diese Komprimierung natürlich nicht...

Wenn Android absolut keinen JDBC Treiber unterstützt, wieso funktioniert es denn mit MYSQL?
Ich denke immer noch, dass es Probleme gibt, weil SQLite eigentlich bereits vorhanden ist.
 

schlingel

Gesperrter Benutzer
Ich denke immer noch, dass es Probleme gibt, weil SQLite eigentlich bereits vorhanden ist.
Sicher nicht, denn dein dex-Problem ist eine Compile-Zeit-Geschichte. Package-Namenskonflikte sind ein Runtime-Problem. Äußert sich meistens in ClassNotFound-Exceptions oder irgendwelchen obskuren Signaturproblemen/Exceptions.

Wenn Android absolut keinen JDBC Treiber unterstützt, wieso funktioniert es denn mit MYSQL?
Gute Frage, welche Lib verwendest du? Wenn man so auf Google nach dem Problem sucht, findet man meistens nur Workarounds mit einem Webservice der dann auf die MySQL-DB zugreift und Android welches mit dem Webservice arbeitet. (Sowieso die sauberere Lösung) Weil es (angeblich) keine MySQL Lib gibt.
 

xvchrisvx

Mitglied
Sicher nicht, denn dein dex-Problem ist eine Compile-Zeit-Geschichte.

Eben auch wenn es nachher im Endeffekt nicht läuft, müsste das Programm doch wenigstens starten,
so wie es mit dem mysql-connector funktioniert.
Ich habe gerade was von SQLDroid gelesen, allerdings scheint das auch leider den normalen SQllite Android Treiber zu nehmen.
Ich habe schon überlegt, ob man den nicht auf dem Gerät ändern könnte.
 

schlingel

Gesperrter Benutzer
Eben auch wenn es nachher im Endeffekt nicht läuft, müsste das Programm doch wenigstens starten,
so wie es mit dem mysql-connector funktioniert.
Wie soll das Programm starten wenn es sich nicht kompilieren lässt?

Der Ablauf ist wie folgt: Aus deinem Projekt werden .class-Files erzeugt. Diese werden dann von dex in das Android-Format kompiliert und in einem APK zusammengeschnürt. Hier hakt es, da dex der Speicher ausgeht. Wie kommst du auf die Idee, dass sich das Programm dann starten lassen sollte?

[...] so wie es mit dem mysql-connector funktioniert.
Welchen verwendest du denn dafür? Bist du dir sicher, dass das tatsächlich JDBC verwendet und nicht ein für Android angepasstes Jar ist?

Ich habe schon überlegt, ob man den nicht auf dem Gerät ändern könnte.
Nein. Das ist in's System eingebacken, ca. so einfach wie die TCP/UDP-Implementierung vom Android-System zu ändern. Erstens nicht praktisch, zweites setzt das ein gerootetes Handy voraus, drittens haut das so ziemlich alle anderen Apps zusammen.

Wenn die Seite von SQLDroid nicht lügt hackt es ganz einfach an der Lib die du verwenden willst. Wenn das mit dem Xms/Xmx nicht hinhaut, wirst du die Lib nicht verwenden können. Das Dex seinen Job macht ist Voraussetzung.
 

xvchrisvx

Mitglied
Welchen verwendest du denn dafür? Bist du dir sicher, dass das tatsächlich JDBC verwendet und nicht ein für Android angepasstes Jar ist.
Den ganz normalen Connector von der Oracle Seite:
http://dev.mysql.com/get/Downloads/...or-java-5.1.22.zip/from/http://cdn.mysql.com/
Wenn der im /libs Ordner liegt, gibt es keinen Fehler vor dem Programmstart.

Ich will keine wirkliche APP programmieren sondern nur ein paar Tests durchführen, dass das Handy gerootet werden muss, dabei Apps vlt. kaputt gehen wäre nicht allzu tragisch.
Aber ich seh schon, ich habe mich noch nicht ausreichend mit Android beschäftigt. Also gibt es keine Möglichkeit eigene Libraries irgendwie auf das Handy zu bekommen, ohne dass die durch den Compiler müssen?
 

schlingel

Gesperrter Benutzer
Also gibt es keine Möglichkeit eigene Libraries irgendwie auf das Handy zu bekommen, ohne dass die durch den Compiler müssen?
Jein. Bei einem JAR ist das meines Wissens nach unmöglich. Wenn du allerdings ein C-Projekt hättest für SQLite, könntest du dieses für ARM Cross-Compilen und das dann über NDK einbinden.

Alleine beim Schreiben dieser Zeilen steigen mir die sprichwörtlichen Grausbirnen auf. Ich würde das lassen und mit den Leuten sprechen, die die Anpassungen gemacht haben ob Sie hier nicht eine Android freundlichere Lib machen könnten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Unable to start Gauge Intellij plugin Android & Cross-Platform Mobile Apps 3
P Android Android-App Crash - Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 2
M Fehler ohne Sinn? java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 11
B java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 2
G Android Unable to resolve host (LAN) Android & Cross-Platform Mobile Apps 4
AllBlack Suche Programmierer in Java und Kotlin mit dem ich mich Selbstständig machen kann Android & Cross-Platform Mobile Apps 23
W Netzwerk Verbindungen Java Android Android & Cross-Platform Mobile Apps 107
Adem61 Flutter Frontend und Java Backend möglich ? Android & Cross-Platform Mobile Apps 2
M Repository bei Room-Database in Android Studio (Java) Android & Cross-Platform Mobile Apps 2
T Android Android Augmented Faces in Java. Neue Landmarks erstellen Android & Cross-Platform Mobile Apps 1
rafi072001 Java API um HTML Elemente von externen Websiten zu bekommen Android & Cross-Platform Mobile Apps 2
N Android java.lang.IllegalStateException: No host Android & Cross-Platform Mobile Apps 22
A Mit Java neues item in ein string-array einer Strings.xml schreiben Android & Cross-Platform Mobile Apps 4
ruutaiokwu Wie fügt man bei Android Studio .jar-Libraries zu einem Android-Java-Projekt hinzu? Android & Cross-Platform Mobile Apps 33
M Gradle sync failed: Could not determine Java version using executable Android & Cross-Platform Mobile Apps 5
J AndroidStudio Login.Java Android & Cross-Platform Mobile Apps 0
O Web API in Android (JAVA) einbinden Android & Cross-Platform Mobile Apps 3
N Wie kann ich mein Handy mit Java rooten? Android & Cross-Platform Mobile Apps 38
T Bringen mir die Java-Basics irgendetwas für die Android-Programmierung Android & Cross-Platform Mobile Apps 4
T Fehler Android Studio: java.net.MalformedURLException: no protocol: http%3A%2F%2Fwww.mal ..... Android & Cross-Platform Mobile Apps 2
C Android Programmierung speziell oder einfach Java Buch kaufen? Android & Cross-Platform Mobile Apps 3
L Android RadioButtonGroup innerhalb der JAVA Android & Cross-Platform Mobile Apps 4
L Android Java scheint XML nicht zu finden Android & Cross-Platform Mobile Apps 11
J Android String in andere Java-Dateien überführen Android & Cross-Platform Mobile Apps 1
J Android Java Packet in Android Java ide hinzufügen. Android & Cross-Platform Mobile Apps 3
T Usage: java ZipInfo zfname Android & Cross-Platform Mobile Apps 2
P Android App - Java Android & Cross-Platform Mobile Apps 1
S Android Android java onclick listener Problem Android & Cross-Platform Mobile Apps 9
P Android JUnit Testprojekt warum keine Java Klassen Android & Cross-Platform Mobile Apps 1
J Plötzlich "java.lang.String cannot be converted to JSONObject" Android & Cross-Platform Mobile Apps 9
A Android join."," von python in java Android & Cross-Platform Mobile Apps 4
C Android Code in mehrere .java verteilen Android & Cross-Platform Mobile Apps 6
T Android Android Sensor: Java Problem Android & Cross-Platform Mobile Apps 1
A Wieso keine java - forum app Android & Cross-Platform Mobile Apps 4
D Lib für (Desktop-)Java und Android schreiben Android & Cross-Platform Mobile Apps 7
D Android Java-Umfang durch Apps-Entwicklung? Android & Cross-Platform Mobile Apps 1
M jsonobject cannot be cast to java.lang.string Android & Cross-Platform Mobile Apps 4
W Java Editor für Android +Emulator Android & Cross-Platform Mobile Apps 7
M Android Switch-Klasse stoppt Android App / java.lang.NullPointerException Android & Cross-Platform Mobile Apps 5
L Mit Java ein Android Projekt kompilieren Android & Cross-Platform Mobile Apps 6
F Bei einer Android Java App, Objekte erstellen Android & Cross-Platform Mobile Apps 2
J Android-App-Programmierung - Ähnlich normaler Java-Programmierung? Android & Cross-Platform Mobile Apps 6
G R.java erzeugen Android & Cross-Platform Mobile Apps 5
M Java und App Programmierung in 4 Monaten? Android & Cross-Platform Mobile Apps 7
G Wie kann ich nachhelfen die R.java zu aktualisieren? Android & Cross-Platform Mobile Apps 3
G Android XML - Teil in Java importieren Android & Cross-Platform Mobile Apps 2
M Push-Nachricht via Java Android & Cross-Platform Mobile Apps 2
F Bilder in Java importieren (Fehler?) Android & Cross-Platform Mobile Apps 5
L Java Anwendungen fürs IPad Android & Cross-Platform Mobile Apps 6
S Desktop Anwedung ( Java 6 ) auf android zu greifen. Android & Cross-Platform Mobile Apps 6
V App Daten in Java Applikation Android & Cross-Platform Mobile Apps 3
L Android Android über Java Code connecten? Android & Cross-Platform Mobile Apps 2
A Android SimpleDateFormat gibt für Date unter android anderes Datum zurück als in Std. Java Android & Cross-Platform Mobile Apps 2
S Android binäre Daten zwischen Android und einem Java-Server Android & Cross-Platform Mobile Apps 5
A Java Symbian Programmierung Android & Cross-Platform Mobile Apps 4
S Android Java, Android und Serializable Android & Cross-Platform Mobile Apps 3
M Frage zu Java Programm für Windows Mobile 6.5 Android & Cross-Platform Mobile Apps 2
H Mjpeg Code läuft unter Java jedoch nicht unter Android? Android & Cross-Platform Mobile Apps 11
W Android Crosswordliste Java<->Android Syntax Android & Cross-Platform Mobile Apps 5
H Android ANDROID SDK + JAVA SE Development Kit (JDK) Android & Cross-Platform Mobile Apps 4
B Java auf dem Handy Android & Cross-Platform Mobile Apps 5
Y sun java wireless toolkit couldnt find jdk Android & Cross-Platform Mobile Apps 2
S ipod app mit java Android & Cross-Platform Mobile Apps 22
J Java ME java.rmi.Remote kann nicht gefunden/geladen werden Android & Cross-Platform Mobile Apps 9
Bastifantasti Java ME Objekte in Java? Android & Cross-Platform Mobile Apps 3
P Java ME Java me sdk3 - bin am ende Android & Cross-Platform Mobile Apps 7
K Java ME Handy Java App die die Navigationstasten abfragt Android & Cross-Platform Mobile Apps 7
W Android gleich Java? Android & Cross-Platform Mobile Apps 3
C Java ME Kein Java Zugriff auf Samsung! Android & Cross-Platform Mobile Apps 5
R Handy Java Version Android & Cross-Platform Mobile Apps 18
J iPhone/iPod/iPad und Java? Android & Cross-Platform Mobile Apps 12
E Java ME package java.sql does not exist? Android & Cross-Platform Mobile Apps 2
V [Java] und [JavaME] ClientServer StreamConnection . Problem beim lesen / schreiben Android & Cross-Platform Mobile Apps 2
O Entwickler für Java Anwendungen auf Handy gesucht! Android & Cross-Platform Mobile Apps 3
I Java Handy - mehrere Programme gleichzeitig Android & Cross-Platform Mobile Apps 8
Screen Java auf Handy,aber nicht Ja2Me ! Android & Cross-Platform Mobile Apps 3
T Java Mobile SDK 3 - Can't Connect to Device Manager Android & Cross-Platform Mobile Apps 14
R Java Programmierung auf Handys Android & Cross-Platform Mobile Apps 8
B Java PC Spiel fürs Handy umwandeln? Android & Cross-Platform Mobile Apps 8
F Server - Client Verbindung mit Java ME Android & Cross-Platform Mobile Apps 3
Outsourcer Kann Java das? Android & Cross-Platform Mobile Apps 13
R Java ME mit Zugriff auf Adressbuch / Kalender Android & Cross-Platform Mobile Apps 3
G Hab mal allgeneine Frageb zu Java ME ! Android & Cross-Platform Mobile Apps 2
H WTK 2.5.2 nur mit Java 1.5? Android & Cross-Platform Mobile Apps 4
T Java Bluetooth Kalender Android & Cross-Platform Mobile Apps 2
W Java auf ein CECT Handy installieren Android & Cross-Platform Mobile Apps 6
A Java Programm auf Handy? Android & Cross-Platform Mobile Apps 2
D java.lang.UnsatisfiedLinkError Android & Cross-Platform Mobile Apps 3
C Telefonanruf mit Java absetzen? Android & Cross-Platform Mobile Apps 5
L Ungültiges Java-Archiv (jar) nach Programmentwicklung Android & Cross-Platform Mobile Apps 4
G java.lang.NullPointerException weiß nich warum Android & Cross-Platform Mobile Apps 7
F Welches Buch zu java ME könnt ihr empfehlen? Android & Cross-Platform Mobile Apps 2
TheJavaKid handy java comiler Android & Cross-Platform Mobile Apps 5
P Java für PDA DELL Axim 51 Android & Cross-Platform Mobile Apps 4
J J2ME Java Programm im Hintergrund auf Handy laufen lassen? Android & Cross-Platform Mobile Apps 2
N Anfängerfrage - mit Java einen Anruf initiieren ? Android & Cross-Platform Mobile Apps 3
D c programm als java application aufs nokia 6230 Android & Cross-Platform Mobile Apps 2
M Java Midlet -> in einem ChoiceGroup ein TextField zur Wah Android & Cross-Platform Mobile Apps 2
H Java auf PDA Android & Cross-Platform Mobile Apps 11
G SMS versenden mit Java Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben