Компиляция библиотек для разных версий Android

Я работал над приложением, которое работает на нескольких гарнитурах AR, которые работают под разными версиями Android. У меня есть несколько разных вариантов сборки для разных версий:

    rej {
        compileSdkVersion 'Recon Instruments:Recon Instruments SDK Add-On:16'
        applicationId "edu.cnu.nasa.hud.reconjet"
        versionName "1.0-rej"
        minSdkVersion 16
    }
    gls {
        compileSdkVersion 23
        applicationId "edu.cnu.nasa.hud.glass"
        versionName "1.0-gls"
        minSdkVersion 19
    }
    vuz_100 {
        compileSdkVersion 23
        applicationId "edu.cnu.nasa.hud.vuzix_100"
        versionName "1.0-vzx_100"
        minSdkVersion 15
    }

Проблема, с которой я сталкиваюсь, заключается в том, что приложение падает при использовании определенных классов GDK. GestureDetector причины java.lang.ExceptionInInitializerError быть брошенным при работе на любом устройстве, которое не Glass. Я не могу понять, почему, так как я только инициализирую и использую его, когда имя фреймворка содержит "gls",

private void addGesturesForGlass(){
    if(BUILD_FLAVOR.contains("gls")) {
        gestureDetector = new GestureDetector(this);
        gestureDetector.setBaseListener(new GestureDetector.BaseListener() {
            @Override
            public boolean onGesture(Gesture gesture) {
                switch (gesture) {
                    case SWIPE_RIGHT:
                        //This is a forward swipe
                        advanceColorShift();
                        return true;
                    case SWIPE_LEFT:
                        //This is a back swipe
                        return true;
                }
                return false;
            }
        });
    } else {
        gestureDetector = null;
    }
}

Согласно Logcat, исключение, которое в конечном итоге вызывает ошибку, происходит от switch(gesture) линия, но эта линия никогда не достигается на любом устройстве, кроме стекла. Есть ли способ, чтобы этот код присутствовал во всех вариантах, не вызывая ошибку?

0 ответов

Другие вопросы по тегам