Jeder so oft wird meine Anwendung zum Absturz bringen und mein Log erscheint:Ungültige Heap-Adresse und fatales Signal 11
@@@ ABORTING: INVALID HEAP ADDRESS IN dlfree
Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
Manchmal code=2
, aber immer Fatal signal 11
und invalid heap address
.
Ich habe versucht zu erforschen, was das bedeutet und wie man es beheben kann. This thread has been the most helpful; aber ich habe immer noch keine Lösung.
Der Fehler tritt auf, wenn ich ein paar AsyncTasks
zum Download mehrerer Bilder ausführen.
Das ist mein Haupt AsyncTask
public class FetchArtistImages extends AsyncTask<Void, Integer, String[]> implements Constants {
private final WeakReference<Context> contextReference;
public FetchArtistImages(Context context) {
contextReference = new WeakReference<Context>(context);
}
@Override
protected String[] doInBackground(Void... params) {
String[] projection = new String[] {
Audio.Artists._ID, Audio.Artists.ARTIST
};
String sortOrder = Audio.Artists.DEFAULT_SORT_ORDER;
Uri uri = Audio.Artists.EXTERNAL_CONTENT_URI;
Cursor c = contextReference.get().getContentResolver()
.query(uri, projection, null, null, sortOrder);
ArrayList<String> artistIds = new ArrayList<String>();
if (c != null) {
int count = c.getCount();
if (count > 0) {
final int ARTIST_IDX = c.getColumnIndex(Audio.Artists.ARTIST);
for (int i = 0; i < count; i++) {
c.moveToPosition(i);
artistIds.add(c.getString(ARTIST_IDX));
}
}
c.close();
c = null;
}
return artistIds.toArray(new String[artistIds.size()]);
}
@Override
protected void onPostExecute(String[] result) {
for (int i = 0; i < result.length; i++) {
new LastfmGetArtistImages(contextReference.get()).executeOnExecutor(
AsyncTask.THREAD_POOL_EXECUTOR, result[i]);
}
super.onPostExecute(result);
}
Auch wenn ich die Nachforschungen habe versucht, was los ist mit diesem, ich mich immer noch verloren finden, wenn es zu Festsetzung kommt. Wenn jemand etwas Einblick hat, würde ich es sehr schätzen, es zu sehen. Der Fehler wird nicht jedes Mal geworfen ich execute
mein AsyncTasks
, aber ich kann nicht viel von einem Muster zu helfen, zu isolieren, warum dies auftritt. Es gibt ein paar andere Threads über SO über fatal signal 11
, aber sie bieten nicht viel Hilfe in meinem Fall.
Gibt es JNI in Ihrer Anwendung? –
Nein, das ist nicht. – adneal
Ich habe JNI in meiner Anwendung und bekomme diesen Fehler. Irgendwelche Vorschläge, @JulieinAustin –