Я разрабатываю приложение, которое использует
android.hardware.Camera.parameters.getSupportedPictureSizes()
Это доступно только в SDK версии 8 и я хотел бы быть совместимым с SDK 4, поэтому я сделал вот что:
if(Build.VERSION.SDK_INT >=8){...}
Но на эмуляторе, похоже, что он пытается проверить ссылку на эту функцию, и он терпит неудачу:
02-02 11:20:10.930: ERROR/dalvikvm(1841): Could not find method android.hardware.Camera$Parameters.getSupportedPictureSizes, referenced from method com.test.demo.CameraCustom.takeAPicture
Есть идеи, как решить эту проблему обратной совместимости?
Я пытался использовать inkocation с этим куском кода внутри surfaceChanged. Очевидно, что код работает напрямую без инвокации:
try{
windowmanager_defaultdisplay_Rotation = getWindowManager().getDefaultDisplay().getClass().getMethod("getRotation");
Log.v(MainMenu.TAG, "getRotation exist");
}catch(Exception e){
Log.v(MainMenu.TAG, "getRotation dont exist");
}
try{
windowmanager_defaultdisplay_Rotation.invoke(null, null);
Log.v(MainMenu.TAG, "getRotation invoking ok, rotation ");
}catch(Exception e){
Log.v(MainMenu.TAG, "exception invoking getRotation "+e.toString());
}
Я получаю "getRotation exist", но затем "exception invoking getRotation java.lang.NullPointerException.
Есть идеи?