Android引用项目出现ClassNotFoundException
Android中在引用其他工程,尤其是github中的相关库时,如果引用关系设置的不对,很容易出现ClassNotFoundException,例如下面的异常信息
07-26 12:47:51.549: E/AndroidRuntime(8107): FATAL EXCEPTION: main
07-26 12:47:51.549: E/AndroidRuntime(8107): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.ex.chips.sample/com.android.ex.chips.sample.MainActivity}: android.view.InflateException: Binary XML file line #23: Error inflating class com.android.ex.chips.RecipientEditTextView
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2081)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2106)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.app.ActivityThread.access$600(ActivityThread.java:137)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1202)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.os.Handler.dispatchMessage(Handler.java:99)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.os.Looper.loop(Looper.java:137)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.app.ActivityThread.main(ActivityThread.java:4897)
07-26 12:47:51.549: E/AndroidRuntime(8107): at java.lang.reflect.Method.invokeNative(Native Method)
07-26 12:47:51.549: E/AndroidRuntime(8107): at java.lang.reflect.Method.invoke(Method.java:511)
07-26 12:47:51.549: E/AndroidRuntime(8107): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:808)
07-26 12:47:51.549: E/AndroidRuntime(8107): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:575)
07-26 12:47:51.549: E/AndroidRuntime(8107): at dalvik.system.NativeStart.main(Native Method)
07-26 12:47:51.549: E/AndroidRuntime(8107): Caused by: android.view.InflateException: Binary XML file line #23: Error inflating class com.android.ex.chips.RecipientEditTextView
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:768)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.view.LayoutInflater.rInflate(LayoutInflater.java:816)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.view.LayoutInflater.inflate(LayoutInflater.java:559)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.view.LayoutInflater.inflate(LayoutInflater.java:417)
07-26 12:47:51.549: E/AndroidRuntime(8107): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:334)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.app.Activity.setContentView(Activity.java:1942)
07-26 12:47:51.549: E/AndroidRuntime(8107): at com.android.ex.chips.sample.MainActivity.onCreate(MainActivity.java:34)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.app.Activity.performCreate(Activity.java:5084)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
07-26 12:47:51.549: E/AndroidRuntime(8107): at com.lbe.security.service.core.client.b.x.callActivityOnCreate(Unknown Source)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2045)
07-26 12:47:51.549: E/AndroidRuntime(8107): ... 11 more
07-26 12:47:51.549: E/AndroidRuntime(8107): Caused by: java.lang.ClassNotFoundException: com.android.ex.chips.RecipientEditTextView
07-26 12:47:51.549: E/AndroidRuntime(8107): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
07-26 12:47:51.549: E/AndroidRuntime(8107): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
07-26 12:47:51.549: E/AndroidRuntime(8107): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.view.LayoutInflater.createView(LayoutInflater.java:622)
07-26 12:47:51.549: E/AndroidRuntime(8107): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:757)
07-26 12:47:51.549: E/AndroidRuntime(8107): ... 22 more
需要注意的是Android SDK首先要指定,其次,需要在主项目Properties中的Android下引用其他项目,如下图所示

其他的引用方式,如果被引用项目不是纯Java代码(包含Android的drawable、layout等资源)时,程序是运行不起来的,如下的引用方式是错误的

网上的许多解决方法说,采用上图引用资源后,调整Order and Export,其实,如果引用其他资源采用的是Android引用方式,是不会在这个标签下出现被引项目的,如下图所示

最后谈下感受,其实稍微开发过点Android的都应该知道怎么引用Android项目,但从github上下载了整个样例后,觉得都引用好了,也就忘了这一茬,一运行发现不对,就开始病急乱投医,各种导入,各种上网搜,其实冷静下来分析一下,马上就能发现问题。所以,遇到问题后的第一反应不应该是马上想解决方案,而是要学会先分析问题。
Android引用项目出现ClassNotFoundException的更多相关文章
- Android的项目不能直接引用可移植类库的项目解决方法
深圳_exception() 10:25:51 Android的项目不能直接引用可移植类库的项目,但是可以引用可移植类库生成的dll,这就意味着无法直接断电调试可移植类库上海-黄药师() 10:26: ...
- Android 引用库项目,Debug 库项目
转自:http://www.cnblogs.com/xitang/p/3615768.html#commentform 使用引用项目,无法追到源代码,无法Debug库项目The JAR of this ...
- 关于Android多项目依赖在Eclipse中无法关联源代码的问题解决
被Eclipse中Android依赖项目无法关联源代码的问题困扰了许久,网上搜索了一下,终于得到解决,大大提高了开发效率. 问题描述: 项目有A,B两个Android Project组成, B是And ...
- Android Studio项目转Eclipse项目
Android Studio项目的目录结构和Eclipse项目不同.如何转换? 以FloatingAction 项目为例:实现向上滑动隐藏悬浮按钮,向上滑动显示悬浮按钮. GitHub 地址:http ...
- Android Studio项目结构
我们创建了一个Android Project,打开就如下图所示: 我们选择Project视图,就会有以下的项目文档结构: 上面笔者标注的数字是接下来要讲解的内容. 我们先来看1: 我们创建Appl ...
- android 引用 project以及下拉刷新开源类库Android-PullToRefresh 的使用
Android-PullToRefresh 是一个github上的开源下拉刷新类库, GitHub .此外,该作者还有另外一个实用度和关注量极高的项目–另一种Android ActionBar的实现 ...
- Android studio 项目(Project)依赖(非Module)
Android studio 项目(Project)依赖(非Module) 0. 前言 对于Module 级别的依赖大家都知道,今天说下Android Studio下的项目依赖. 场景: A Proj ...
- 【Android Studio安装部署系列】三、Android Studio项目目录结构
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 简单介绍下Android studio新建项目的目录结构. 常用项目结构类型 在Android Studio中,提供了以下几种项目结 ...
- 在内网使用Gradle构建Android Studio项目
在Android Studio项目中,默认的远程仓库为jcenter,如果在项目引用了一些类库,Gradle构建程序的时候会将这些依赖类库从jcenter网站下载到本地,如我们在 build.grad ...
随机推荐
- 使用C#程序处理PowerPoint文件中的字符串
最近, 有同事偶然发现Microsoft Office PowerPoint可以被看作是一个压缩包,然后通过WinRAR解压出来一组XML文件.解压出来的文件包括: 一个索引文件名称为:[Conte ...
- 关于jackson处理数据
/** * 将请求参数封装成Map对象 * * @param json 参数 * @return Object */ public static Map ...
- 关于 Record & TList 的一点吐槽
需求是把record 保存在TList中,并可以随时改变TList中Items的各项值. 代码很简单: MyRec = record MyStr: string; constructor Create ...
- Maven学习-处理资源文件
在前面两篇文章中,我们学习了Maven的基本使用方式和Maven项目的标准目录结构.接下来,我们来看下Maven是如果管理项目中的资源文件的. Java项目的资源文件,主要用于存储系统的配置信息,以及 ...
- Maven学习-目录结构
在前一篇文章中,我们介绍了什么是Maven,以及如何用Maven来构建我们的项目.不了解Maven的童鞋,可以看这里Maven学习-入门.在这篇文章中,我们将学习Maven的项目的目录结构相关的内容. ...
- Atom 如何隐藏 .Ds_Store 文件
明明在core里设置了忽略文件列表,但是在右侧的文件列表中还是看到了,相当烦人.然后我查了下资料,原来还需要核心插件TreeView再设置一次遵循全局忽略文件才生效. 版本:1.12.6 (其它版本 ...
- wordpress导入模板数据
主题安装完成以后,如果有主题的DEMO数据(xml格式的)的话可以导入,导入后该有的页面与分类文章等等都会有了,这样子会节省很多时间,导入后只需要更改对应的页面与分类就可以了. 导入方法: 1. 在后 ...
- KANO模型
一.满意度的定义 消费者的满意度是取决于他们对企业所提供的产品和服务的事前期待,与实际(感知)效果之间的比较后,用户形成的开心或失望的感觉.就是说,如果购后在实际消费中的实际效果与事前期待相符合,则感 ...
- js 字符串转换成数字的三种方法
在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b.value,因为他们都是字符串形 ...
- C# .Net中七层架构浅析
Model实体层,DBUtility数据访问抽象类,IDAL数据访问接口层,SQLServerDAL数据访问层,DALFactory数据访问工厂类,BLL业务逻辑层,UI界面层 一.项目名称及描述:( ...