2016-08-14 2 views
2

Ich versuche, das Enum von Bitmap.CompressFormat abrufen. Was auch immer ich versuche, ich kann nicht auf die Klasse zugreifen. Hat jemand das schon mal gemacht?So erhalten Sie Enum von Android in Unity

Code:

... 

AndroidJavaClass bitmapClass = new AndroidJavaClass("android.graphics.Bitmap"); 
AndroidJavaClass bitmapCompressEnum = bitmapClass.Get<AndroidJavaClass>("CompressFormat"); 

... 

bitmap.Call("compress", bitmapCompressEnum.Get<AndroidJavaObject>("PNG"), 100, fileOutputStreamObject); 

Fehler:

AndroidJavaException: java.lang.NoSuchFieldError: no "Ljava/lang/Class;" field "CompressFormat" in class "Landroid/graphics/Bitmap;" or its superclasses java.lang.NoSuchFieldError: no "Ljava/lang/Class;" field "CompressFormat" in class "Landroid/graphics/Bitmap;" or its superclasses

+1

Weil Enum keine Klasse ist. Sie möchten die Werte der Enum und nicht eine Klasse erhalten –

Antwort

1
AndroidJavaClass bitmapClass = new AndroidJavaClass("android.graphics.Bitmap$CompressFormat"); 
bitmapClass.GetStatic<AndroidJavaObject>("PNG"); 

bereits. Gestern, um das gleiche Problem zu lösen, dauerte es drei Stunden, um eine Lösung zu finden. Die Lösung ist, eine Java-Demo zu schreiben, um den Pfad Bitmap.CompressFormat auszudrucken, das Ergebnis ist android.graphics.Bitmap $ CompressFormat, was wir brauchen. Und wirst du das bitte abbrechen -1? Danke.

tucao in my mother tongue

+0

Willkommen bei Stack Overflow! Während dieser Code die Frage beantworten kann, verbessert ein zusätzlicher Kontext, warum und/oder wie dieser Code die Frage beantwortet, seinen langfristigen Wert. Code-only-Antworten werden nicht empfohlen. – Ajean

Verwandte Themen