如何在IntelliJ IDEA中添加库(android-support-v7-appcompat)

我创build了一个项目,将项目,库中的资源文件复制到项目结构中,并添加了规定的样式Theme.AppCompat 。 编译没有错误,但是当你开始降级时例外:

 08-03 00:50:00.406: ERROR/AndroidRuntime(4055): FATAL EXCEPTION: main java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$styleable at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:98) at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:58) at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98) at com.example.SampleMetrRost.CentralActivity.onCreate(CentralActivity.java:12) at android.app.Activity.performCreate(Activity.java:4636) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1051) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1924) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1985) at android.app.ActivityThread.access$600(ActivityThread.java:127) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4476) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:816) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:583) at dalvik.system.NativeStart.main(Native Method) 

请帮帮我。 今天花了整整一天

  • Android Studio:如何创建热键来清除logcat?
  • IntelliJ和Android Gradle依赖项 - 无法find模块
  • IntelliJ 12 + ActionBarSherlock setttings:找不到类'android.support.v4.app.FragmentActivity'
  • 使用Intellij IDEA 12/13导入并运行Phonegap 3.0项目?
  • 无法parsing:IntelliJ IDEA中的com.google.android.gms:play-services和gradle
  • 自动添加活动到清单?
  • Android Studio:使用AndroidAnnotations
  • 在没有gradle的情况下在IntelliJ IDEA中添加AAR
  • 没有Gradle( 点击这里查看Gradle解决scheme )

    1. 创build一个支持库项目 。

    2. 将您的库项目从Eclipse项目导入到Intellij(这一步仅适用于在Eclipse中创build了库)。

    3. 右键单击模块并select打开模块设置。

    4. 安装v7 jar文件的库 安装v7 jar文件的库

    5. v7的安装程序库模块 v7的安装程序库模块

    6. 设置v7库模块的应用程序模块依赖关系 设置v7库模块的应用程序模块依赖关系

    使用Gradle

    如果您正在使用Gradle,则可以将其添加为compile依赖项。

    说明

    1. 确保你已经安装了Android Support Repository SDK包。 Android Studio在构build过程中会自动识别这个存储库(不知道普通的IntelliJ)。

      Android支持信息库

    2. 将依赖关系添加到{project}/build.gradle

       dependencies { compile 'com.android.support:appcompat-v7:+' } 
    3. 点击Sync Project with Gradle Filesbutton。

    编辑 :看起来像这些相同的说明在Adding libraries with resources -> Using Android Studio下的文档 。

    使用Maven

    首先,您应该使用Maven Android SDK部署程序将Android库安装到您的本地Maven存储库

    然后你可以像这样添加依赖到你的pom:

      <dependency> <groupId>android.support</groupId> <artifactId>compatibility-v7-appcompat</artifactId> <version>${compatibility.version}</version> <type>apklib</type> </dependency> <dependency> <groupId>android.support</groupId> <artifactId>compatibility-v7-appcompat</artifactId> <version>${compatibility.version}</version> <type>jar</type> </dependency> 

    这是我的解决scheme:

    1. 将$ ANDROID_SDK / extras / android / support / v7 / appcompat复制粘贴到您的项目ROOT

    2. 在Intellij上打开“Project Structure”,在“Project Settings”上点击“Modules”,然后点击“appcompat” – >“android”,确保选中“Library Module”checkbox。

    3. 点击“appcompat”下的“YOUR-PROJECT_NAME”,删除“android-support-v4”和“android-support-v7-compat”; 确保选中“appcompat”之前的checkbox。 然后点击“确定”closures“项目结构”对话框。

    4. 回到主窗口,点击左上angular项目区域的“appcompat” – >“libs”。 右键单击“android-support-v4”,select菜单项“添加为库”,将“添加到模块”更改为“您的项目”。 与“android-support-v7-compat”相同。

    完成上述之后,intellij应该能够正确地findandroid-support-XXXX模块。

    祝你好运!

    Maven的另一个解决scheme(对于我来说至less是一个更好的解决scheme)是使用本地android SDK中包含的maven仓库。 要做到这一点,只需添加一个新的存储库到您的pom指向本地android SDK:

     <repository> <id>android-support</id> <url>file://${env.ANDROID_HOME}/extras/android/m2repository</url> </repository> 

    添加这个仓库后,你可以像这样添加标准的Google依赖项:

     <dependency> <groupId>com.android.support</groupId> <artifactId>support-v13</artifactId> <version>${support-v13.version}</version> </dependency> <dependency> <groupId>com.android.support</groupId> <artifactId>appcompat-v7</artifactId> <version>${appcompat-v7.version}</version> <type>aar</type> </dependency> 

    另一个简单的解决scheme是将这些行粘贴到build.gradle文件中

     dependencies { //import of gridlayout compile 'com.android.support:gridlayout-v7:19.0.0' compile 'com.android.support:appcompat-v7:+' } 

    作为图书馆项目

    您应该按照http://developer.android.com/tools/support-library/setup.html将资源添加到库项目&#x4E2D;

    部分>使用资源添加库

    然后,在工作区中添加android-support-v7-appcompat库,然后将其作为参考添加到您的应用程序项目中。

    在你的应用程序项目中定义所有的资源也是可行的(但是还有很多定义需要添加,而你错过了其中的一些),这不是推荐的方法。

    这是我的解决scheme,它与以前的非常相似:

     <dependency> <groupId>com.google.android</groupId> <artifactId>support-v7</artifactId> <scope>system</scope> <systemPath>${android.home}/support/v7/appcompat/libs/android-support-v7-appcompat.jar</systemPath> <version>19.0.1</version> </dependency> 

    其中{android.home}是Android SDK的根目录,它使用systemPath而不是存储库