как правильно собрать проект

Ответить
alu
Сообщения: 53
Зарегистрирован: 06 сен 2013, 13:02

как правильно собрать проект

Сообщение alu » 23 сен 2013, 16:23

У меня сейчас задача собрать проект так, чтобы он запускался на андроиде 2.1 - 4.3 (api level 7-18). Проект до настоящего момента писал и отлаживал на андроиде 4.1 прямо на железке. Как мне проверить запустится он или нет на 2.1? В манифесте я попробовал поставить минимальный апи левел 7 но в процессе сборки ничего не поменялось, хотя я точно знаю что в паре мест использовал финкции не поддерживаемые на этой версии. Что мне нужно прописать в AndroidStudio чтобы сборка прошла для этой версии.
Второе - как мне нужно собрать-проект чтобы один APKзапустился без проблем на всех версиях?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: как правильно собрать проект

Сообщение KamiSempai » 23 сен 2013, 17:00

Самое простое - это кликнуть правой кнопкой на проекте, выбрать "Properties" в настройках перейти на вкладку "Android" и выбрать там версию с нужным API. Если нужной не будет, нужно будет скачать через SDK Manager. Ошибки которые появятся- это и есть те места которые на API 7 работать не будут. Их нужно будет аккуратно обойти.
Как-то так:

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

if(android.os.Build.VERSION.SDK_INT >= 14) {
    // Код для 4 Андроида
else {
    // Код для более старых версий
}
Ну, и не забыть вернуть настройки на место.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

alu
Сообщения: 53
Зарегистрирован: 06 сен 2013, 13:02

Re: как правильно собрать проект

Сообщение alu » 23 сен 2013, 18:55

И теперь я просто всегда использую лвл 7 чтобы проект запускался на всех устррйствах нужных а на более старших версиях его просто тестирую. Я все правильно понял?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: как правильно собрать проект

Сообщение KamiSempai » 23 сен 2013, 20:04

Если вы будете всегда использовать 7 лвл, приложение даже не скомпилируется, так как код для более высокой версии будет помечаться как ошибка. В идеале нужно сразу смотреть какое API использует тот или иной метод и применять меры для совместимости на всех платформах. То, что я описал выше, это всего лишь быстрый способ посмотреть что не так.

PS: Если при выборе более низкого API ошибок не выдает, можно использовать его, совместимость с более высокими версиями есть почти всегда.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

alu
Сообщения: 53
Зарегистрирован: 06 сен 2013, 13:02

Re: как правильно собрать проект

Сообщение alu » 27 сен 2013, 09:48

Я наверное продолжу вопрос в этой ветке.
Все сделал, все собрал, все понял - спасибо.
Когда я загружаю это приложение в альфа версию на google-play
во первых сразу после загрузки пишет в информации о пакете API 10+, хотя в манифесте прописано 7-е
во вторых когда я попытался загрузить из альфы на телефон знакомого HTC gratia (андроид 2.2) было написано приложение не поддерживается на вашем устройстве.
вот манифест

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

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.mcsar.seowatcher"
    android:versionCode="2"
    android:versionName="1.0"
    android:installLocation="preferExternal">
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="14" />

    <application
        android:description="@string/descr"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/ic_launcher"
        android:label="@string/Myapp_name_short"
        android:theme="@style/AppTheme" >
        <activity
            android:name="ru.mcsar.seowatcher.MainActivity"
            android:label="@string/Bigapp_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".ActivityListDomain"
                  android:label="@string/app_name_graph">
        </activity>
    </application>
</manifest>
почему определяется уровень апи 10+? Может какие-то разрешения или что-то еще появилось только с 10-го апи?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: как правильно собрать проект

Сообщение KamiSempai » 27 сен 2013, 12:24

Попробуйте установить приложение на телефон знакомого не через маркет, а напрямую при помощи APK и проверить его работоспособность.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

alu
Сообщения: 53
Зарегистрирован: 06 сен 2013, 13:02

Re: как правильно собрать проект

Сообщение alu » 27 сен 2013, 12:37

KamiSempai писал(а):Попробуйте установить приложение на телефон знакомого не через маркет, а напрямую при помощи APK и проверить его работоспособность.
Это первое что я пробовал. При попытке установки ошибка - При анализе пакета возникла синтаксическая ошибка. Передавал по почте в архиве и без архива

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: как правильно собрать проект

Сообщение KamiSempai » 27 сен 2013, 13:35

Значит нужно брать телефон и производить на нем отладку приложения.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Ответить