- Решение проблем при разработке под Android
- Ошибка “No Platforms Found”:
- Unity не удаётся установить ваше приложение на ваше устройство
- Ваше приложение падает сразу после запуска.
- Building DEX Failed
- Приложение падает через несколько секунд после начала проигрывания видео.
- Моя игра закрывается, когда я жму кнопку сна
- Android-приложение Unity3D сразу вылетает на всех телефонах.
- 4 ответа
- Troubleshooting Android development
- Your application crashes immediately after launch
- The game crashes after a couple of seconds when playing video
- No Android device found
- Failed to re-package resources
- Unable to merge Android manifests
- Unable to convert classes into DEX format
- Unable to install APK to device
- Unity Android APK сбой при запуске
- Эмулятор андроид для Unity Build and run
- 1 ответ 1
Решение проблем при разработке под Android
Ошибка “No Platforms Found”:
- Удалите установленный Android SDK и убедитесь, что у вас нигде не установлены ещё копии.
- Обновите Java до последней стабильной версии. Никогда не забывайте, что хоть самая последняя версия не должна конфликтовать, у пользователей в прошлом всё равно бывали проблемы.
- Скачайте свежую копию самого последнего ADT Bundle и установите его следуя инструкциям. Это должно корректно откалибровать инструменты разработки: http://developer.android.com/sdk/index.html
- Настройте Unity на работу с установленным Android SDK.
Unity не удаётся установить ваше приложение на ваше устройство
- Убедитесь, что ваш компьютер видит ваше устройство и может взаимодействовать с ним. Для деталей см. Публикация сборок.
- Проверьте консоль Unity на наличие сообщений об ошибках. Это часто помогает в определении проблемы.
Если у вас появляется ошибка “Unable to install APK, protocol failure” во время сборки, то это значит, что ваше устройство подключено через USB-порт с низким питанием (возможно порт на клавиатуре или ещё на какой-нибудь периферии). Если такое случается, то попробуйте подсоединить устройство в USB порт на самом компьютере.
Ваше приложение падает сразу после запуска.
- Убедитесь, что вы не пытаетесь использовать NativeActivity с устройствами, которые это не поддерживают.
- Попробуйте убрать все нативные плагины, что у вас есть.
- Попробуйте отключить stripping.
- Используйте adb logcat чтобы получить отчёт о крахе с вашего устройства.
Building DEX Failed
Это ошибка, которая выдаёт сообщение, вроде следующего:-
Обычно это вызвано неверной версией Java на вашем компьютере. Обновление Java до последней версии обычно решает проблему.
Приложение падает через несколько секунд после начала проигрывания видео.
Убедитесь, что Settings->Developer Options->Don’t keep activities не включено на вашем телефоне. Проигрыватель видео — это отдельное приложение и поэтому обычное игровое приложение будет закрыто, если проигрыватель видео включён.
Моя игра закрывается, когда я жму кнопку сна
Измените тег activity в файле AndroidManifest.xml так , чтобы он содержал тег android:configChanges , сделайте это таким образом, как описано здесь.
Пример тега activity может выглядеть, например, вот так:-
Источник
Android-приложение Unity3D сразу вылетает на всех телефонах.
Всем привет и спасибо за чтение.
Я сделал приложение на Unity3D и готов протестировать его на своем телефоне Android (Huawei G510). Он вылетает, как только я пытаюсь открыть приложение на своем телефоне (даже не отображает заставку).
Мне посоветовали проверить файл LogCat, но на самом деле я полный нуб, и после нескольких часов попыток расшифровать сообщения об ошибках я оказался на грани ума.
Все приложения, которые я пытался развернуть мгновенно, сбой
Все устройства, которые я тестировал, вызывают сбой приложения (Galaxy S3, S2 и мой Huawei)
Я использую Macbook Pro, загрузил Eclipse SDK, а также Java JDK, а также установил ВСЕ доступные версии SDK.
Любая помощь будет принята с благодарностью, поскольку я полностью озадачен :(.
Вот файл logcat (я опубликовал ошибки, которые могу выделить под всем выводом logcat)
4 ответа
Похоже, есть конфликт в номерах версий. Если вы обновили (или понизили) Unity в середине проекта, это вероятная причина. На основе этого forum, похоже, вам нужно начинать новый проект xcode каждый раз, когда вы обновляете Unity. Я знаю, что проекты Unity можно обновить до более новой версии, но они будут повреждены, если когда-либо будут открыты в более старой версии.
В моем случае с Android просто замените libunity.so в моем проекте Android на новую версию libunity.so , экспортированную новой версией Unity. На самом деле нет необходимости создавать новый Android-проект.
В случае, если к этому вопросу будет больше посетителей, у меня была такая же проблема при сборке планшета Huawei на MacBook Pro, в точности так, как вы описываете. Нам удалось решить эту проблему, сняв флажок «Development Build» в диалоговом окне «Build Setting».
Надеюсь, что это помогает кому-то!
Перейдите в экспортированную папку единства. В папке libs вы найдете папки armeabi-v7a , x86 и файл unity-classes.jar в соответствии с настройками вашего плеера.
Переместите и замените папки armeabi-v7a и x86 в папку /app/src/main/jniLibs/ .
Переместите и замените файл unity-classes.jar в папку /app/libs/ .
Если вы не можете найти пути, которые я упомянул, поищите их имена в своем проекте Android и соответственно замените их новыми.
Источник
Troubleshooting Android development
While developing for Android using Unity, you could encounter a number of issues. Problems are often related to plug-ins A set of code created outside of Unity that creates functionality in Unity. There are two kinds of plug-ins you can use in Unity: Managed plug-ins (managed .NET assemblies created with tools like Visual Studio) and Native plug-ins (platform-specific native code libraries). More info
See in Glossary or incorrect Project settings A broad collection of settings which allow you to configure how Physics, Audio, Networking, Graphics, Input and many other areas of your project behave. More info
See in Glossary . This section outlines the most common scenarios and relavant troubleshooting advice.
Your application crashes immediately after launch
Remove any native plug-ins A platform-specific native code library that is created outside of Unity for use in Unity. Allows you can access features like OS calls and third-party code libraries that would otherwise not be available to Unity. More info
See in Glossary you have.
Use adb logcat to get the crash report from your device. Consult the official Android Developer Logcat Command-Line Tool documentation for more information.
The game crashes after a couple of seconds when playing video
Ensure Settings > Developer Options > Don’t keep activities isn’t enabled on the device.
The video player is its own activity, and therefore regular game activity will be destroyed if the video player is activated.
No Android device found
If Unity cannot find an Android device connected to the system, check the following:
Make sure that your device is actually connected to your computer — check the USB cable and the sockets.
Make sure that your device has USB Debugging enabled in the Developer options. For more details, refer to the Android SDK/NDK Setup page.
Run the adb devices command from the platform-tools directory of your Android SDK installation and check the output.
If the output list is empty and you are using Windows, you may need to install the driver for ADB An Android Debug Bridge (ADB). You can use an ADB to deploy an Android package (APK) manually after building. More info
See in Glossary devices. For more details, refer to the Android SDK/NDK Setup documentation.
If the list contains entries with the unauthorized label, you may need to authorize your computer on your device and give it permission to debug it. Check the device’s screen for the corresponding dialog.
If the list contains your device with the device label, build your Project in Unity again.
Failed to re-package resources
This error occurs when the Android Asset Packaging Tool (AAPT) fails. AAPT is used to build the intermediate Asset packages A collection of files and data from Unity projects, or elements of projects, which are compressed and stored in one file, similar to Zip files, with the .unitypackage extension. Asset packages are a handy way of sharing and re-using Unity projects and collections of assets. More info
See in Glossary during Android build. This issue is most often caused by missing resources or duplicate resources in your Android plug-ins.
Check the console message for more details — it should contain the IDs of the resources that are missing or duplicates. Fix the error in your plug-ins by either adding the missing resources/settings or removing the duplicate plug-ins.
Unable to merge Android manifests
The most likely cause for this issue is that one of your plug-ins has a manifest that is incompatible with the main Unity manifest.
Check the console message for more details on which attributes are conflicting, and fix the manifests accordingly.
See the Android Manifest documentation for more details on Android manifests.
Unable to convert classes into DEX format
The most likely cause for this issue is that you have a Java plug-in added twice. This results in duplicate classes when Unity tries to build a DEX (Dalvik Executable Format) file from all the compiled Java plug-ins. Check the console output for the list of duplicate entries, and fix the plug-ins.
If your console messages says “Too many references”, it means that the number of fields and methods exceeded the DEX limit of 64k. This usually happens when the number of plug-ins or plug-in resources is too high. Due to the way the references are generated, the limit could be hit with just a couple of large plug-ins.
There are several ways to handle this issue. One of these is by stripping the plug-ins. However, the quickest way to fix it is to switch to the Gradle build system, or export the Project and build it in Android Studio.
Unable to install APK to device
This error can be caused by:
Installing to an incompatible device.
Installing to a device running a version of Android lower than the Minimum API Level in your Player settings.
Check the console for the actual error code and output.
Источник
Unity Android APK сбой при запуске
Хорошо, так как я последний раз успешно построил, все, что я сделал, попробовал добавить Google Play Services к моей игре, отсюда .
Я импортировал пакет единства и установил игровые игры google для Android в соответствующем окне настройки.
Я попытался построить на этом этапе, однако я не смог, получил эту странную ошибку при создании файлов dex, означающих наличие конфликта между файлами aar. Я сузил его до того, что был вызван как активами / плагинами / андроид / play-services-base-9.0.2, так и активами / плагинами / андроидами / play-services-basement-9.0.2.
Я отключил оба из них, которые были созданы для Android, чтобы убрать конверсию в файл ошибки dex. Я предположил, что все будет в порядке.
Затем я нажал приложение в Google Play (альфа-окружение) вместе с небольшим сценарием контроллера для Google Play для входа в систему start ():
Однако Unity, кажется, сбой, прежде чем открыть первую сцену. Сбой сразу после запуска. Здесь можно увидеть материал журнала.
Проблема возникает, например, в строке 842:
Я понятия не имею, как это исправить?
::Дополнительная информация::
Поэтому я вернулась к точке, где у меня есть пакет единства, импортированный в Unity, но я еще не настроил его, предоставив ему свой xml, содержащий ресурсы. На данный момент в редакторе дается нулевое исключение:
Линия, на которую он ссылается:
Однако сразу после этого исключения nullreference я вижу, как распознаватель регистрируется в журналах. Такие как:
Теперь, я могу построить этот APK и запустить его на моем телефоне в порядке, никаких проблем. (Очевидно, что игровые сервисы google не будут делать много, поскольку они не настроены).
Итак, я перехожу к Window >> Google Play Games >> Setup >> Android и здесь, я вставляю свои ресурсы XML. Я даю место и имя для файла ресурсов C # и нажимаю Setup.
Я вижу следующие параметры конфликта зависимости Jar:
Я попытался приложить все к ним, а также ОК, оба действия в конечном итоге вызывают конфликт с моими арами.
Я просто попробовал еще раз, на этот раз, нажав OK для всех из них, и попытался построить снова, только сделав это со своей последней успешной сборки. Преобразуя формат баннеров в формат dex, он не выполняет сборку, которая дает следующую ошибку:
Как уже упоминалось ранее, я могу помешать этому, обнаружив файлы play-services-base и play-services-basement и сняв флажок для их создания для Android. Когда я это делаю, APK строит, однако приложение будет разбиваться, как только оно будет открыто.
В прошлом году я столкнулся с такой же проблемой в своем Android-проекте. Я обновил Android Support Repository, Android Support Library, Google Play Services, Google Repository, Google Billing Library, Android API 6.0, а затем эта проблема решена. Я до сих пор не знаю, что является источником проблемы, но я решил проблему таким образом в своем проекте. Надеюсь, это сработает и для вас.
Работа с зависимостями – это действительно боль …. я долго работал над единством. И я не помню слишком много этого. Но посмотрите на эти ссылки, возможно, это может помочь.
Также попробуйте этот зависимый преобразователь ….
Возникла та же проблема с моим проектом единства. Был дублированный класс поддержки-v4. Выяснилось, что лучше всего импортировать плагин для игры в пустые проекты (сделайте тестовую сборку).
Затем полностью удалите плагин google play и все файлы из папок Extensions, Editor и Plugins и повторно импортируйте из пустого проекта. Извините, я не могу уточнить, что больше не имеет доступа к моим файлам проектов.
Источник
Эмулятор андроид для Unity Build and run
Есть несколько эмуляторов, которые успешно обрабатывают apk Unity. На все них apk надо сохранить и вручную загружать. Но не получилось найти не один, который работает по команде Build and Run, как просто подключенное android устройство.
Есть ли что то подобное? У nox app player есть интеграция с Android Studio, но с юнити при тех же настройках не работает.
Поделитесь опытом, возможно ли в один клик запускать через эмулятор приложения прям из Unity.
1 ответ 1
Для бИлда в Юнити и одновременного теста на андройде есть такая штука как Unity Remote 4.
Unity Remote 4 — это программка, которая помогает осуществить удаленный контроль к проекту в Unity Editor.
Обычно на андройде скачивается это приложение (через google play к примеру), и также в настройках Debugging надо поставить галочку Аndroid Debugging (enable the Android Debug bridge «adb» intefrace).
Надо не забыть подключить телефон к компьютеру (или на чем идет разработка).
При запуске приложения можно будет видеть следующую картинку:
В Unity надо переключиться на платформу Android. А также в настройках
Edit → Project Settings → Editor в пункте Unity Remote → Device выбрать Any Android Device
После этого если нажать Play — игра должна запуститься в редакторе и на телефоне тоже
Если телефона нет, то данная фишка может прокатить только с эмулятором андройда, установленным через AVD Manager.exe Причем настройка CPU/ABI обязательно должна быть ARM armeabi. При значении Intel x86 работать не будет.
Примерные настройки для AVD:
После установки эмулятора надо установить Unity Remote 4 из apk в эмулятор используя команду: adb.exe install adb.exe install path/to/apk (Windows) или adb install path/to/apk (Linux/Mac).
Всё остальное как и при работе с телефоном — сделать настройки в Unity и прочее. После всех установок желательно перезагрузить Unity!
Источник