Ответ 1
В Eclipse или другом редакторе перейдите в исходный файл .java под платформами/android/src/и убедитесь, что класс расширяет CordovaActivity (возможно, ранее он расширил DroidGap).
Мой компьютер - это Windows 8 64bit, я устанавливаю платформу corova и android для своего проекта, я создал свой проект с помощью ввода cordova create hello com.example.hello HelloWorld
и cordova platform add android
но когда я запустил cordova build
, он показывает ниже ошибку:
[Error: No Java files found which extend CordovaActivity.]
Я искал в Интернете, но еще не нашел решение. Какая проблема?
В Eclipse или другом редакторе перейдите в исходный файл .java под платформами/android/src/и убедитесь, что класс расширяет CordovaActivity (возможно, ранее он расширил DroidGap).
У меня была такая же ошибка, когда я клонировал свой репозиторий из другого проекта. Я решил это, удалив платформы и добавив их снова.
Как раз по связанной теме, касающейся PhoneGap 3.2, вызывающей ту же ошибку, скорее всего, вы, вероятно, испортили приложение при настройке и попытке запустить его изначально
Что сработало для меня, так это удалить сгенерированные файлы платформы Android и снова запустить команду RUN. Поэтому из домашнего каталога проекта PhoneGap выполните следующие
cd platforms
sudo rm -rf android
cd ..
sudo phonegap local run android --emulator
Я работаю над Macbook Pro с OSX версии 10.9
Надеюсь, это поможет кому-то!
Файл .java с активностью, расширяющей значение CordovaActivity, должен быть точно в com.example.app - как указано в теге config.xml id = "com.example.app".
Это изменилось в 3.2.0 - отправлено сообщение об ошибке: https://issues.apache.org/jira/browse/CB-5515
У меня была такая же проблема (хотя и на Ubuntu), и я попробовал ответ Hyperizer, который должен был сработать... но для меня это не повлияло. Примечание. У меня была ошибка после обновления кордовы (от 3.0.9 до 3.4.0-0.1.3), поэтому мои сгенерированные папки с платформами не синхронизировались с последней версией кордовы.
Я нашел самую чистую вещь (и это сработало для меня) - удалить ваш каталог /platform/android (в соответствии с ответом cornelius... но мое внимание - это кордова), а затем воссоздать с кордорой, чтобы вы знали все актуально и соответствует текущей версии кордовы.
cd platforms
rm -rf android
cd ..
cordova platform add android
Ваша папка android воссоздана, и теперь попробуйте создать и запустить снова.
cordova build android
cordova emulate android
Недостаток сдувания и воссоздания папки платформы Android - это то, что вам нужно будет повторно применить любые настройки, которые вы, возможно, сделали для источника android... (мне не приходилось благодарно), но тогда вы должны быть способный вытащить это из вашего git и т.д. По крайней мере теперь вы работаете над чистой и аккуратной обновленной сборкой.
Все, что вам нужно сделать, это удалить платформу платформы платформы roova rm android и повторно добавить платформу, набрав платформу кордовы add android, и ошибка уходит
Я наткнулся на "решение" для тех, кто использует Framework, который "скрывает" расширение CordovaActivity, т.е. MainActivity выглядит следующим образом:
public class MainActivity extends GDCordovaActivity {...}
где GDCordovaActivy - это ваша Framework-активность, расширяющая CordovaActivity.
Просто добавьте файл "foo.java" в проект, содержащий только комментарий:
/** extends CordovaActivity */
Поскольку кордовая структура анализирует файл и не распознает комментарии, вы можете вызвать cordova android prepare
и т.д. без каких-либо ошибок.
Это может произойти, если ваши id
и android-packageName
в config.xml
не совпадают.
android-packageName="com.example.app" id="com.example.app"
У меня было слишком много настроек и не хотелось воссоздавать платформы.
Решено это, изменив widget id
в defaults.xml
на новое имя пакета (я изменил значение по умолчанию io.hellocordova
в мою собственную структуру пакета)
Эта ошибка произошла, когда я изменяю имя идентификатора пакета из файла config.xml, например io.cordova..etc, на другое имя пакета, поэтому я решил его, удалив платформу android и изменив информацию о версии и имя пакета из config file и запустить команду android cordova platform add android
Я исправил эту проблему с помощью reset среды JAVA.
$ sudo update-alternatives --config java
выберите номер для /usr/lib/jvm/java -1.8.0-openjdk-amd64.
Нажмите enter, чтобы сохранить текущий выбор [*], или введите номер выбора:
Чтобы выбрать компилятор javac по умолчанию, выполните следующую команду.
$ sudo update-alternatives --config javac
Если вы предпочитаете использовать gui вместо командной строки, вы можете вместо этого выполнить galternatives и определить версии программного обеспечения по умолчанию со следующим диалогом.
$ sudo galternatives
Эта проблема возникает из-за отсутствия файла MainActivity.Java Обычно он находится на следующем пути.
[Имя приложения]\platform\android\src\com
Здесь он должен иметь имя папки на основе пространства имен, которое вы указали. Предположим, что я дал пространство имен как com.passion.oilfreerecipes Так что должна быть папка страсть → OilfreeRecipes
И внутри их вы должны иметь MainActivity.Java.
Он очищается в моем приложении, когда я очищаю решение. Вы можете скопировать и вставить из другого проекта и изменить mainActivity.Java на основе ваших потребностей.