AndroidAnnotations + Instant App - сгенерированный класс <applicationId> .R не найден

1

В настоящее время я работаю над мгновенными приложениями для Android, используя пример проекта android-topeka.

Все работает, как и ожидалось, после того, как я использую аннотации Android в своей активности:

@EActivity(resName = "activity_start")
public class StartActivity extends AppCompatActivity {
...
}

Если я хочу запустить приложение (:installed), все работает, но для приложения Instant (:instant) я получаю следующую ошибку:

:base:javaPreCompileDebugFeature UP-TO-DATE
error: The generated <applicationId>.R class cannot be found
1 error
:base:compileDebugFeatureJavaWithJavac FAILED

Дополнительная информация:

Если я удаляю application project(':installed') selected application project(':installed') в базовом build.gradle, я могу запустить приложение Instant -App, но с неверным идентификатором приложения (настроенным в проекте :installed).

Теги:
android-instant-apps
android-annotations

2 ответа

1
Лучший ответ

Наконец, я получил его с помощью трекера этой проблемы (спасибо Kay-Uwe Janssen). Также спасибо Джесс. В целом это была установка в сочетании с Manifest Finder и annotationProcessorOptions.

Вот так выглядит моя настройка gradle/Manifest:

База:

build.gradle:

android {
    ...

    baseFeature true

    defaultConfig {
        ...

        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["resourcePackageName": "com.test.base"]
            }
        }
    }

    buildTypes {
        release {
        }
    }
}
dependencies {
    application project(':installed')
    ...
}

AndroidManifest.xml:

<manifest ...
    package="com.test.base">
    ...
</manifest>

Установлены:

build.gradle:

android {
      ...
}

dependencies {
    implementation project(':base')
}

AndroidManifest.xml:

<manifest package="com.test2">
</manifest>

Мгновенный:

build.gradle:

android {
    defaultConfig {}
}

dependencies {
    implementation project(':base')
}

При такой настройке мгновенное приложение имеет тот же идентификатор приложения, что и установленный "com.test2"

  • 0
    Пожалуйста, обновитесь до AndroidAnnotations 4.6.0, в котором есть поддержка мгновенных приложений. Я считаю, что сейчас требуется меньше настроек.
0

Основанный на этом так связанном посте:

Эта ошибка возникает при изменении applicationId. Сценарий, представленный в примере, предполагает, что вы объявили android.defaultConfig.applicationId. Если это не было объявлено, значение будет нулевым, или оно генерирует нулевое значение. R.

defaultConfig {

    // Rest of Config

    javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["resourcePackageName": "<Original Package Name>"]
            }
    }
}

Примечание. Package Name оригинального Package Name должно совпадать с расположением R в вашей активности.

  • 0
    К сожалению, это не работает для настройки мгновенного приложения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню