如何在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)
请帮帮我。 今天花了整整一天
没有Gradle( 点击这里查看Gradle解决scheme )
-
创build一个支持库项目 。
-
将您的库项目从Eclipse项目导入到Intellij(这一步仅适用于在Eclipse中创build了库)。
-
右键单击模块并select打开模块设置。
-
安装v7 jar文件的库
-
v7的安装程序库模块
-
设置v7库模块的应用程序模块依赖关系
使用Gradle
如果您正在使用Gradle,则可以将其添加为compile
依赖项。
说明
-
确保你已经安装了
Android Support Repository
SDK包。 Android Studio在构build过程中会自动识别这个存储库(不知道普通的IntelliJ)。 -
将依赖关系添加到
{project}/build.gradle
dependencies { compile 'com.android.support:appcompat-v7:+' }
-
点击
Sync Project with Gradle Files
button。
编辑 :看起来像这些相同的说明在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:
-
将$ ANDROID_SDK / extras / android / support / v7 / appcompat复制粘贴到您的项目ROOT中
-
在Intellij上打开“Project Structure”,在“Project Settings”上点击“Modules”,然后点击“appcompat” – >“android”,确保选中“Library Module”checkbox。
-
点击“appcompat”下的“YOUR-PROJECT_NAME”,删除“android-support-v4”和“android-support-v7-compat”; 确保选中“appcompat”之前的checkbox。 然后点击“确定”closures“项目结构”对话框。
-
回到主窗口,点击左上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将资源添加到库项目中;
部分>使用资源添加库
然后,在工作区中添加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而不是存储库 。
- Firebase数据库快速入门处理的方式是否安全?
- 以编程方式在android中设置“布局到右侧”属性
- Android studio:为什么在AndroidManifest.xml和build.gradle中都指定了minSdkVersion和targetSdkVersion?
- UnsatisfiedLinkError:dlopen失败:无法在API <20上find由“libsupportjni.so”引用的符号“strtof”
- Google Play服务更新
- Jar,Android库和Android库项目之间的区别
- 如何在Android上的TextView中横向和纵向放置文本?
- SimpleDateFormat(string模板,语言环境语言环境),例如用于ASCIIdate的Locale.US
- 原始文件夹urlpath?