web-dev-qa-db-ja.com

新しいプロジェクトを作成するたびにEclipseが自動的にappcompat v7ライブラリサポートを追加するのはなぜですか?

新しいプロジェクトを作成するたびにEclipseが自動的にappcompat v7ライブラリサポートを追加するのはなぜですか?

私はMainActivityActivityを拡張するべき単純なプロジェクトを作成していますが、そうではありません。 Eclipseは自動的にアクションバーのサポートを追加します。

appcompatライブラリを使わずに簡単なプロジェクトを作成する方法を教えてください。参考までに、私はADTの最新版をダウンロードし、すべてが最近更新されました。私はWindow 7 x 64を使っています。

Enter image description here

216
Talha Qamar

Androidの サポートライブラリの概要 で述べられているように、デバイスの多様性と存在する断片化のためにデフォルトでサポートライブラリを含めるのは良い習慣と考えられます異なるバージョンのAndroid間(したがって提供されているAPI間)。

これが、Android Development Tools (ADT)を介してEclipseに含まれるAndroid コードテンプレートツール がデフォルトでそれらを統合する理由です。

サンプルではAPI 15をターゲットにしていますが、パッケージに最低限必要なSDKはAPI 10です。このため、互換性ライブラリは非常に多くの下位互換性のあるAPIを提供できます。例は、Fragment APIに現れる API 11 (Android 3.0ハニカム)onを使用する機能です。このシステムの古いバージョンを実行しているデバイス。

デフォルトでサポートライブラリの自動インクルードを無効にすることもできます。

105
Halim Qarroum

新しいAndroid Application Projectを作成し、ステップ2でCreate activityのチェックを外します(プロジェクトの構成)。

59
songhir

新しいプロジェクトを作成するたびにEclipseが自動的にappcompat v7ライブラリサポートを追加する理由

ターゲットSDKは15に設定されており、デフォルトではアクションバーがオンになっており、サポートされる最小SDKは10に設定されています。 参照先

プロジェクトプロパティのビルドパスでプロジェクトライブラリを設定できます。

22

Eclipseが自動的にappcompat_v7を作成しました。KitKatApiが起動したため、appcompat_v7fragment_main.xmlが自動的に追加されます。

これらを解決するための最良の方法:

  1. まずプロジェクトで、Right click->properties->Android。そこではReferenceに置かれたred marked appcompatを見ることができます。それをクリックして削除します。次にProject Build Targetで正しいターゲット名を選択します。

  2. あなたのに作成されたfragment_main.xmlAppcompatファイルを削除する)Eclipse

  3. 次のように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>
    
  4. res/values/styles.xml:

    <resources>
    
        <style name="AppBaseTheme" parent="Android:Theme.Light">
    
        </style>
    
        <!-- Application theme. -->
        <style name="AppTheme" parent="AppBaseTheme">
    
        </style>
    
    </resources>
    
  5. res/values-v11/styles.xmlでは、次のように変更する必要があります。

    <resources>
    
        <style name="AppBaseTheme" parent="Android:Theme.Holo.Light">
        </style>
    
    </resources>
    
  6. res/values-v14/styles.xmlでは、次のように変更する必要があります。

      <resources>
    
        <style name="AppBaseTheme" parent="Android:Theme.Light">
        </style>
    
        <style name="AppTheme" parent="AppBaseTheme">
        </style>
    
    </resources>
    
  7. 次のように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>
    
  8. 最後に、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);
    
    }
    
    }
    

同様に、あなたは新しいプロジェクトを作成するためにそれをしなければなりません

18
Stephen

SDK 11の最小バージョンが10に設定されているため含まれています。ActionBarはAPI 11で導入されました。Eclipseが自動的に追加するので、サポートしているすべてのAndroidバージョンでアプリケーションの一貫性が高まります。

8
Ahmad

あなたが2.xバージョンをターゲットにしていないなら、あなたは4.xのあなたの最小のsdkバージョンを設定してそれからプロジェクトを作成することができます。 Appcompat V7 libは作成されません。

4
Swapnil

私はAndroidの初心者なので、新しいAndroidアプリケーションプロジェクトを作成するときに常にappcompat_v7プロジェクトが作成されるので、とても不快です。

これはただ歩き回っているだけです。 [プロジェクトのプロパティ] - > [Android]を選択し、[ライブラリ]ボックスでappcompat_v7_xを削除してappcompat_v7を追加します。これでappcompat_v7_xを削除できます。

ウィザードによるアクティビティの作成時にappcompat_v7_xが再び表示されるため、[プロジェクトの作成ウィザードでアクティビティを作成]チェックボックスをオフにしても機能しません。私のADTのバージョンはv22.6.2-1085508です。
私の英語が下手なのですみません。

4
Lê Quang Duy

私の英語で申し訳ありませんが、新しいAndroidプロジェクトを作成するときは、高レベルのAPIを選択する必要があります。例えば、api 17からapi 21までです。appcompatはなく、プロジェクトの共有は非常に簡単です。あなたがより低いAPIでそれをしたならば、あなたはちょうどより高いAPIを持つようにAndroid Manifestで編集します:)、その後、あなたはAppcompat V7を削除することができます。

3
nobjta_9x_tq

によると http://developer.Android.com/guide/topics/ui/actionbar.html

ActionBar APIは、Android 3.0(APIレベル11)で最初に追加されましたが、Android 2.1(APIレベル7)以降との互換性のためにサポートライブラリでも利用可能です。

つまり、自動生成されたプロジェクトにmodularizes ActionBarをAPIに追加するプロセスがあります。

Example of ActionBar on Froyo

このトピックに関する簡単な説明とチュートリアルについては、 http://hmkcode.com/add-actionbar-to-Android-2-3-x/ を参照してください。 。

2
b1nary.atr0phy

MinSDKが11に設定され、targetSDKが19に設定されている場合でも、ADT 22.6.2バージョンを使用して新しいAndroidプロジェクトを作成しているときに 'appcompat'ライブラリが作成されました。

これは、新しいプロジェクトテンプレートでAndroidがサポートライブラリからの属性を使用しているためです。たとえば、新しいプロジェクトがactionbarで作成された場合、メニューのmain.xmlにサポートライブラリからのapp:showAsAction="never"を見つけることができます。

  • アプリがAndroidバージョン11以降をターゲットにしている場合は、メニューのmain.xmlでこの属性を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」に変更する必要があります。

  • これに加えて、Fragmentを参照する場合は、MainActivity.JavaのコードでサポートライブラリからFragments Managerを作成し、これらをFragment、SDKのFragmentManagerに適切に変更する必要があります。
0
Jeevan