Ошибка: MainActivity должна расширить Android.App.Apctivity [Centantiatable]Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибка: MainActivity должна расширить Android.App.Apctivity [Centantiatable]

Сообщение Anonymous »

Я попробовал обновить плагин Android Gradle с 4.2.2 до 7.0.1, используя помощник по обновлению, который доступен в Android Studio на инструментах> AGP обновления. Единственное изменение, которое он внес, было для моего файла на уровне проекта build.gradle: < /p>

Код: Выделить всё

buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.1' // changed from 4.2.2 to 7.0.1
// ...
}
}
Однако теперь, когда я запускаю ./gradlew Assemble AssembleAndroidtest Я получаю следующую ошибку:

Код: Выделить всё

/builds/locuslabs/android-team/locuslabs-android-sdk/app/src/main/AndroidManifest.xml:21: Error: MainActivity must extend android.app.Activity [Instantiatable]
android:name="com.locuslabs.appsdk.MainActivity"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Explanation for issues of type "Instantiatable":
Activities, services, broadcast receivers etc. registered in the manifest
file (or for custom views, in a layout file) must be "instantiatable" by
the system, which means that the class must be public, it must have an
empty public constructor, and if it's an inner class, it must be a static
inner class.
1 errors, 0 warnings
Lint found fatal errors while assembling a release target.
To proceed, either fix the issues identified by lint, or modify your build script as follows:
...
android {
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
}
Мой проект многомодуля, но я не подозреваю, что в качестве проблемы, поскольку он жалуется на модуль приложения, а не библиотечный модуль.
Я считаю, что Tag хорошо сформирована в моем Androidmanifest.xml для моего приложения:








Кроме того, я не думаю, что есть что-то не так в расширении AppCompatactivity вместо Android.App.Activity , как я делаю в моем mainActivity.kt:

Код: Выделить всё

import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
// ...
}
Я обеспокоен тем, что плагин Android Gradle 7.0.1 не очень готов к прайм-тайм, потому что документация Android Gradle Plugin по-прежнему говорит о ClassPath 'com.android.tools.build:10. Соответственно. Activity < /code>: < /p>

Ошибка Android Studio: активность должна расширить Android.App.Apctivity < /li>
MainActivity не может быть поднят на Android.App.Apcative < /li>
< /ol>
Я также попробовал подключаемость Android Gradle 7.0.0, но получила одинаковую ошибку. Только плагин Android Gradle 4.2.2 предотвращает ошибку.
Это ошибка в плагине Android Gradle 7.0.1? Ошибка.
Сначала я попытался добавить отключить "Centantiatable" в мой файл на уровне приложения.

Код: Выделить всё

android {
lintOptions {
disable "Instantiatable"
}
}
Во-вторых, я попытался причесать @sdksuppress ("centantiatable") к классу:

Код: Выделить всё

@SdkSuppress("Instantiatable")
class MainActivity : AppCompatActivity() {
// ...
}
Точно так же я попробовал @suppresslint ("commentiatable") , но это тоже не сработало.


Подробнее здесь: https://stackoverflow.com/questions/688 ... antiatable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»