2016-08-14 82 views
2

我想从Bitmap.CompressFormat中检索枚举。我正在尝试什么,我似乎无法进入课堂。有没有人做过这个?如何从Unity中获取枚举

代码:

... 

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

... 

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

错误:

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

因为枚举不是类。你想获得枚举值而不是类 –

回答

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

试试这个。 昨天为了解决同样的问题,花了三个小时才找到解决方案。 解决的办法是写一个java demo来打印出Bitmap.CompressFormat的路径,打印结果是android.graphics.Bitmap $ CompressFormat,这就是我们需要的。你能取消那个-1吗?谢谢。

tucao in my mother tongue

+0

欢迎来到堆栈溢出!虽然这段代码可能会回答这个问题,但为什么和/或代码如何回答这个问题提供了额外的背景,这提高了它的长期价值。不鼓励使用仅有代码的答案。 – Ajean