新しいプロジェクトを作成するたびにEclipseが自動的にappcompat v7
ライブラリサポートを追加するのはなぜですか?
私はMainActivity
がActivity
を拡張するべき単純なプロジェクトを作成していますが、そうではありません。 Eclipseは自動的にアクションバーのサポートを追加します。
appcompat
ライブラリを使わずに簡単なプロジェクトを作成する方法を教えてください。参考までに、私はADTの最新版をダウンロードし、すべてが最近更新されました。私はWindow 7 x 64を使っています。
Androidの サポートライブラリの概要 で述べられているように、デバイスの多様性と存在する断片化のためにデフォルトでサポートライブラリを含めるのは良い習慣と考えられます異なるバージョンのAndroid間(したがって提供されているAPI間)。
これが、Android Development Tools (ADT)
を介してEclipseに含まれるAndroid コードテンプレートツール がデフォルトでそれらを統合する理由です。
サンプルではAPI 15
をターゲットにしていますが、パッケージに最低限必要なSDKはAPI 10
です。このため、互換性ライブラリは非常に多くの下位互換性のあるAPIを提供できます。例は、Fragment API
に現れる API 11
(Android 3.0ハニカム)onを使用する機能です。このシステムの古いバージョンを実行しているデバイス。
デフォルトでサポートライブラリの自動インクルードを無効にすることもできます。
新しいAndroid Application Project
を作成し、ステップ2でCreate activity
のチェックを外します(プロジェクトの構成)。
新しいプロジェクトを作成するたびにEclipseが自動的にappcompat v7ライブラリサポートを追加する理由
ターゲットSDKは15に設定されており、デフォルトではアクションバーがオンになっており、サポートされる最小SDKは10に設定されています。 参照先
プロジェクトプロパティのビルドパスでプロジェクトライブラリを設定できます。
Eclipseが自動的にappcompat_v7を作成しました。KitKatApiが起動したため、appcompat_v7
とfragment_main.xml
が自動的に追加されます。
これらを解決するための最良の方法:
まずプロジェクトで、Right click->properties->Android
。そこではReference
に置かれたred marked appcompat
を見ることができます。それをクリックして削除します。次にProject Build Target
で正しいターゲット名を選択します。
あなたのに作成されたfragment_main.xmlとAppcompatファイルを削除する)Eclipse。
次のようにactivity_main.xmlを編集して変更します。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/hello_world" />
</RelativeLayout>
res/values/styles.xml:
<resources>
<style name="AppBaseTheme" parent="Android:Theme.Light">
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
res/values-v11/styles.xmlでは、次のように変更する必要があります。
<resources>
<style name="AppBaseTheme" parent="Android:Theme.Holo.Light">
</style>
</resources>
res/values-v14/styles.xmlでは、次のように変更する必要があります。
<resources>
<style name="AppBaseTheme" parent="Android:Theme.Light">
</style>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>
次のようにmenu/main.xmlを変更してください。
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item
Android:id="@+id/action_settings"
Android:orderInCategory="100"
Android:showAsAction="never"
Android:title="@string/action_settings"/>
</menu>
最後に、MainActivity.Javaを次のように変更します。
import Android.app.Activity;
import Android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
同様に、あなたは新しいプロジェクトを作成するためにそれをしなければなりません
SDK 11の最小バージョンが10に設定されているため含まれています。ActionBar
はAPI 11で導入されました。Eclipseが自動的に追加するので、サポートしているすべてのAndroidバージョンでアプリケーションの一貫性が高まります。
あなたが2.xバージョンをターゲットにしていないなら、あなたは4.xのあなたの最小のsdkバージョンを設定してそれからプロジェクトを作成することができます。 Appcompat V7 libは作成されません。
私はAndroidの初心者なので、新しいAndroidアプリケーションプロジェクトを作成するときに常にappcompat_v7プロジェクトが作成されるので、とても不快です。
これはただ歩き回っているだけです。 [プロジェクトのプロパティ] - > [Android]を選択し、[ライブラリ]ボックスでappcompat_v7_xを削除してappcompat_v7を追加します。これでappcompat_v7_xを削除できます。
ウィザードによるアクティビティの作成時にappcompat_v7_xが再び表示されるため、[プロジェクトの作成ウィザードでアクティビティを作成]チェックボックスをオフにしても機能しません。私のADTのバージョンはv22.6.2-1085508です。
私の英語が下手なのですみません。
私の英語で申し訳ありませんが、新しいAndroidプロジェクトを作成するときは、高レベルのAPIを選択する必要があります。例えば、api 17からapi 21までです。appcompatはなく、プロジェクトの共有は非常に簡単です。あなたがより低いAPIでそれをしたならば、あなたはちょうどより高いAPIを持つようにAndroid Manifestで編集します:)、その後、あなたはAppcompat V7を削除することができます。
によると http://developer.Android.com/guide/topics/ui/actionbar.html
ActionBar APIは、Android 3.0(APIレベル11)で最初に追加されましたが、Android 2.1(APIレベル7)以降との互換性のためにサポートライブラリでも利用可能です。
つまり、自動生成されたプロジェクトにmodularizes ActionBarをAPIに追加するプロセスがあります。
このトピックに関する簡単な説明とチュートリアルについては、 http://hmkcode.com/add-actionbar-to-Android-2-3-x/ を参照してください。 。
MinSDKが11に設定され、targetSDKが19に設定されている場合でも、ADT 22.6.2バージョンを使用して新しいAndroidプロジェクトを作成しているときに 'appcompat'ライブラリが作成されました。
これは、新しいプロジェクトテンプレートでAndroidがサポートライブラリからの属性を使用しているためです。たとえば、新しいプロジェクトがactionbarで作成された場合、メニューのmain.xmlにサポートライブラリからのapp:showAsAction="never"
を見つけることができます。
Android:showAsAction
に変更できます。また、デフォルトのテーマセットは、次に示すように "Theme.AppCompat.Light.DarkActionBar"になります(styles.xml)。
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
この場合、style.xmlの親テーマは「Android:style/Theme.Holo.Light.DarkActionBar」に変更する必要があります。