Перечисление <URL> configs.hasMoreElements () дает false

Я разрабатываю голосовое приложение для Android и сталкиваюсь с некоторыми проблемами, см. Код ниже,

Файл Java 1 file = .wav file

public static AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException {
    return getAudioInputStreamImpl(file);
}
private static AudioInputStream getAudioInputStreamImpl(Object source) throws UnsupportedAudioFileException, IOException {
    GetAudioInputStreamAudioFileReaderAction action = new GetAudioInputStreamAudioFileReaderAction(source);
    doAudioFileReaderIteration(action);
    AudioInputStream audioInputStream = action.getAudioInputStream();

    if (audioInputStream != null) {
        return audioInputStream;
    }
    throw new UnsupportedAudioFileException("format not supported");
}
private static void doAudioFileReaderIteration(AudioFileReaderAction action) throws IOException {
    Iterator audioFileReaders = TAudioConfig.getAudioFileReaders();
    boolean bCompleted = false;

    while (audioFileReaders.hasNext() && !bCompleted) {
        AudioFileReader audioFileReader = (AudioFileReader) audioFileReaders.next();
        bCompleted = action.handleAudioFileReader(audioFileReader);
    }
}

Java-файл 2 (TAudioConfig)

public static synchronized Iterator<AudioFileReader> getAudioFileReaders() {
    Iterator<AudioFileReader> it;
    synchr,onized (TAudioConfig.class) {
        it = getAudioFileReadersImpl().iterator();
    }
    return it;
}
private static synchronized Set<AudioFileReader> getAudioFileReadersImpl() {
    Set<AudioFileReader> set;
    synchronized (TAudioConfig.class) {
        if (sm_audioFileReaders == null) {
            sm_audioFileReaders = new ArraySet();
            registerAudioFileReaders();
        }
        set = sm_audioFileReaders;
    }
    return set;
}
private static void registerAudioFileReaders() {
    TInit.registerClasses(AudioFileReader.class, new C00001());
}

Файл Java 3 (TInit)

public static void registerClasses(Class providerClass, ProviderRegistrationAction action) {


    Iterator providers = Service.providers(providerClass);
    if (providers != null) {
        while (providers.hasNext()) {
            try {
                action.register(providers.next());
            } catch (Throwable e) {

            }
        }
    }
}

Файл Java 4 (Сервис)

public static Iterator<?> providers(Class<?> cls) {

    String strFullName = "com/example/voiceautomator/AudioFileReader.class";

    Iterator<?> iterator = createInstancesList(strFullName).iterator();
    return iterator;
}
private static List<Object> createInstancesList(String strFullName) {   
    List<Object> providers = new ArrayList<Object>();
    Iterator<?> classNames = createClassNames(strFullName);
    if (classNames != null) {
        while (classNames.hasNext()) {
            String strClassName = (String) classNames.next();
            try {
                Class<?> cls = Class.forName(strClassName, REVERSE_ORDER, ClassLoader.getSystemClassLoader());

                providers.add(0, cls.newInstance());
            } catch (Throwable e) {

            }
        }
    }
    return providers;
}
private static Iterator<String> createClassNames(String strFullName) {       
    Set<String> providers = new ArraySet<String>();
    Enumeration<?> configs = null;        
    try {
                    configs =  Service.class.getClassLoader().getSystemResources(strFullName);
    } catch (Throwable e) {

    }
    if (configs != null) {
        while (configs.hasMoreElements()) {
            URL configFileUrl = (URL) configs.nextElement();

            InputStream input = null;
            try {
                input = configFileUrl.openStream();
            } catch (Throwable e2) {


            }
            if (input != null) {
                BufferedReader reader = new BufferedReader(new InputStreamReader(input));
                try {
                    for (String strLine = reader.readLine(); strLine != null; strLine = reader.readLine()) {
                        strLine = strLine.trim();
                        int nPos = strLine.indexOf(35);
                        if (nPos >= 0) {
                            strLine = strLine.substring(0, nPos);
                        }
                        if (strLine.length() > 0) {
                            providers.add(strLine);
                        }
                    }
                } catch (Throwable e22) {

                }
            }
        }
    }
    Iterator<String> iterator = providers.iterator();

    return iterator;
}

getClassLoader (). getSystemResources в Java File 4 (Service) дает мне TwoEnumerationsInOne, а configs.hasMoreElements () дает false, поэтому не может войти в цикл while.

AudioFileReader.java входит в комплект

Пожалуйста, помогите мне решить эту проблему?

Пожалуйста, не забудьте, что я работаю над этим кодом в проекте Android

Пожалуйста, посмотрите значение конфигов здесь

http://capsicumtech.in/Screenshot_1.png

Заранее спасибо.

Ответы на вопрос(0)

Ваш ответ на вопрос