2012-01-07 1 views
0

Есть много полезных сообщений по этой теме, но все требуют от меня использовать более поздний sdk, чем я написал свое приложение. В попытке сделать мое приложение как можно более совместимым как можно дальше, я решил создать его с помощью Android 1.5 (sdk v 3). С кодом предложил для объявления манифеста у меня есть некоторые проблемы с затмением давая мне ошибку, как код относится к более поздним функциям SDK не доступным в Android 1.5AdActivity не объявляется в манифесте ...... но я использую sdk v 3?

<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 
     /> 

Eclipse, говорит мне, что все после ориентации проблема ,

error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize'). 

Может кто-то пожалуйста, мне точку в правильном направлении, поскольку код для манифеста или как собрать для последующих целей?

Cheers !!

Ok ..... вот код из манифеста:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.ohmywebdesign.trigsolver" 
android:versionCode="5" 
android:versionName="1.3" > 
<uses-sdk android:minSdkVersion="8" /> 
<uses-sdk android:targetSdkVersion="8" /> 
<uses-sdk android:maxSdkVersion="15" /> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<application 
    android:icon="@drawable/icon" 
    android:label="@string/app_name" > 
    <meta-data android:value="YOURPUBIDHERE" android:name="ADMOB_PUBLISHER_ID" /> 
    <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" /> 
    <activity 
     android:name=".Splash" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
+0

Рик, вопрос в том, почему вы хотите скомпилировать устаревшую версию sdk? – Ghost

+0

Это мое первое приложение, и я хотел сделать его доступным для всех пользователей Android. Я лаяю неправильное дерево с этой мыслью или есть лучший способ? Я открыт для любых предложений. –

+0

Я хотел бы сказать вам, что не так много людей на этой планете придерживаются 1.5 или 1.6. Даже большинство производителей строят телефоны, поддерживающие 2,2 и выше. Я думаю, вы можете стремиться к 2.1, т. Е. Sdk версии 7. Предлагайте посмотреть это видео http://www.youtube.com/watch?v = GxU8N21wfrM & feature = player_embedded – Ghost

ответ

0

Что-то вроде этого:

<uses-sdk android:minSdkVersion="3" /> 
<uses-sdk android:targetSdkVersion="8" /> 
<uses-sdk android:maxSdkVersion="15" /> 

В вас явить позволит вам делать то, что вы хотите.

Кроме того, убедитесь, что у вас есть последняя AdMob SDK т.е. версии 4.3.1 http://code.google.com/mobile/ads/download.html

и что вы включили

<meta-data android:value="YOURPUBIDHERE" android:name="ADMOB_PUBLISHER_ID" /> 
+0

Первоначально у меня были проблемы со ссылкой на версии 8 и 15 sdk, которые я преодолел, переключив свою сборку на Android 1.6 Но даже в этом случае у меня все еще есть проблема с eclipse, вызывающая строку configChanges как ошибку. –

+0

Тогда я бы удостоверился, что вы используете последнюю версию AdMob SDK, то есть версию 4.3.1 http://code.google.com/mobile/ads/download.html - обновил мой ответ. – TryTryAgain

+0

AdMob уже имеет версию 4.3.1 –

0

Как комментарий MisterSquonk по вопросу заявил, что некоторые из configChanges значений были введены в уровнях API выше, чем у 1.5. Простое изменение значений уровней минимума/цели/максимума API только в манифесте не решит вашу проблему, вы должны убедиться в том, что построит против уровня SDK, который объявляет эти значения.

Для сборки на основе Ant это приведет к изменению значения свойства target в project.properties; Я не использую Eclipse, для моих Android проектов, так что я не уверен на 100%, но вот выдержка из Eclipse/ADT documentation, что кажется, соответствует тому, что вам нужно сделать:

Note: You can change your the Build Target for your project at any time: Right-click the project in the Package Explorer, select Properties, select Android and then check the desired Project Target.

Конечно, если вы делаете это, вы должны не использовать прямое использование каких-либо классов/методов из уровней API выше вашего минимума, или ваше приложение не будет работать во время выполнения при запуске на устройствах, реализующих более низкие уровни API.

Помните, что манифест используется только во время работы на устройстве (и по большинству каналов распространения, таких как Android Market). Цель сборки - это нечто совершенно отдельное, которое используется во время компиляции.

 Смежные вопросы

  • Нет связанных вопросов^_^