Ich arbeite an etwas, das ExifInterface für alle Kamerabilder aufrufen muss, um Bilder Ort und Zeit zu erhalten, es funktioniert gut für die meisten Geräte, aber verursacht java.lang .StackOverflowError in einigen Geräten wie Redmi 3S.Aufruf von ExifInterface in einer Schleife verursacht java.lang.StackOverflowError
Was ich mache, ist so etwas.
for (String imagePath : paths) {
ExifInterface exif = new ExifInterface(imagePath);
float[] latlng = new float[2];
if(exif.getLatLong(latlng)){
//====rest of the process happened here.
}
}
das ist stacktrace
Fatal Exception: java.lang.StackOverflowError: stack size 1038KB
at java.lang.Integer.valueOf(Integer.java:742)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:1940)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2041)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2014)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2041)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2014)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2041)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2014)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2041)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2014)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2041)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2014)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2041)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2014)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2041)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2014)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2041)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2014)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2041)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2014)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2041)
at android.media.ExifInterface.readImageFileDirectory(ExifInterface.java:2014)
at android.media.ExifInterface.readExifSegment(ExifInterface.java:1863)
at android.media.ExifInterface.getJpegAttributes(ExifInterface.java:1662)
at android.media.ExifInterface.loadAttributes(ExifInterface.java:1339)
at android.media.ExifInterface.(ExifInterface.java)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:66)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
Jede Idee, wie kann ich das verhindern?
lesen https://examples.javacodegeeks.com/java-basics/exceptions/java-lang-stackoverflowerror-how-to-solve- stackoverflowerror/ –
bieten einen stacktrace –
@VladMatvienko Aktualisiert – Ankit