Как использовать вспомогательный файл из источника Android в локальном проекте / пакете? - PullRequest
0 голосов
/ 27 мая 2020

В качестве эксперимента я пытаюсь проверить, смогу ли я клонировать / перенести / скопировать класс Android TextToSpeech в свой проект Android Studio и переименовать его в MyTextToSpeech, изменить имя пакета на свое, затем получить избавиться от всех сообщений об ошибках и по-прежнему работать правильно.

MainActivity. java: (здесь нет ошибок, просто показан небольшой тестовый класс, чтобы вы понимали, что я делаю)

public class MainActivity extends AppCompatActivity {

    // notice that this not android.speech.tts.TextToSpeech class, but a local copy of it.
    MyTextToSpeech tts; 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tts = new MyTextToSpeech(getApplicationContext(), new MyTextToSpeech.OnInitListener() {
            @Override
            public void onInit(int i) {
                if (i == TextToSpeech.SUCCESS) {
                    begin();
                }
                else {
                    Log.i("XXX", "init failed");
                }
            }
        }, "com.google.android.tts");
    }

    private void begin() {
        Log.i("XXX", "It seems to have initialized!");
    }
}

Я избавился от большинства ошибок (пожалуйста, предположите, что это единственный оставшийся), но есть один класс, который я не могу включить в проект: ITextToSpeechService:

enter image description here

По-видимому, это скрытый / внутренний "вспомогательный" файл, источником которого является здесь .

Я пробовал вставить он находится в новой папке с именем «aidl» (после ответа this ), и он «работал» в том смысле, что существовал в папке aidl без ошибок, но при попытке скомпилировать его с помощью gradle \ tasks \ other \ compileDebugAidl, у меня такая ошибка:

* 1 020 * ОШИБКА: сбой сборки с исключением.
  • Что пошло не так: сбой выполнения для задачи ': app: compileDebugAidl'.

    Рабочие подняли 1 исключение: java .lang.RuntimeException: java .lang.RuntimeException: java .io.IOException: com. android .ide.common.process.ProcessException : Ошибка при выполнении процесса /Users/boober/Library/Android/sdk/build-tools/28.0.3/aidl с аргументами {-p / Users / boober / Library / Android / sdk / platform / android -29 / framework .aidl -o / Users / boober / Desktop / SCRAP / TTSGraft / app / build / generated / aidl_source_output_dir / debug / out -I / Users / boober / Desktop / SCRAP / TTSGraft / app / src / main / aidl -I / Users / boober / Desktop / SCRAP / TTSGraft / app / src / debug / aidl -I / Users / boober / .gradle / caches / transforms-2 / files-2.1 / 1cd7eff88f5e86d0249af2958bf465f0 / core-1.1.0 / aidl -I / Users / boober / .gradle / caches / transforms-2 / files-2.1 / 929ec10604c047a76453df3294ada6ae / versionedparcelable-1.1.0 / aidl -d / var / files / vz / d68y33c14pjc9m2vrkqp2kvc0000gn / T / DesktopG88 / Boost / Пользователи /app/src/main/aidl/com/booberbunz/ttsgraft/ITextToSpeechService.aidl}

... и он по-прежнему не разрешается в MyTextToSpeech. java.

Как добавить этот файл в мой проект локально, чтобы у меня больше не было красного цвета «Ошибка устранения ошибки», как видно на изображении?

...