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的更多相关文章

  1. Android的项目不能直接引用可移植类库的项目解决方法

    深圳_exception() 10:25:51 Android的项目不能直接引用可移植类库的项目,但是可以引用可移植类库生成的dll,这就意味着无法直接断电调试可移植类库上海-黄药师() 10:26: ...

  2. Android 引用库项目,Debug 库项目

    转自:http://www.cnblogs.com/xitang/p/3615768.html#commentform 使用引用项目,无法追到源代码,无法Debug库项目The JAR of this ...

  3. 关于Android多项目依赖在Eclipse中无法关联源代码的问题解决

    被Eclipse中Android依赖项目无法关联源代码的问题困扰了许久,网上搜索了一下,终于得到解决,大大提高了开发效率. 问题描述: 项目有A,B两个Android Project组成, B是And ...

  4. Android Studio项目转Eclipse项目

    Android Studio项目的目录结构和Eclipse项目不同.如何转换? 以FloatingAction 项目为例:实现向上滑动隐藏悬浮按钮,向上滑动显示悬浮按钮. GitHub 地址:http ...

  5. Android Studio项目结构

    我们创建了一个Android Project,打开就如下图所示:  我们选择Project视图,就会有以下的项目文档结构:  上面笔者标注的数字是接下来要讲解的内容. 我们先来看1: 我们创建Appl ...

  6. android 引用 project以及下拉刷新开源类库Android-PullToRefresh 的使用

    Android-PullToRefresh 是一个github上的开源下拉刷新类库, GitHub  .此外,该作者还有另外一个实用度和关注量极高的项目–另一种Android ActionBar的实现 ...

  7. Android studio 项目(Project)依赖(非Module)

    Android studio 项目(Project)依赖(非Module) 0. 前言 对于Module 级别的依赖大家都知道,今天说下Android Studio下的项目依赖. 场景: A Proj ...

  8. 【Android Studio安装部署系列】三、Android Studio项目目录结构

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 简单介绍下Android studio新建项目的目录结构. 常用项目结构类型 在Android Studio中,提供了以下几种项目结 ...

  9. 在内网使用Gradle构建Android Studio项目

    在Android Studio项目中,默认的远程仓库为jcenter,如果在项目引用了一些类库,Gradle构建程序的时候会将这些依赖类库从jcenter网站下载到本地,如我们在 build.grad ...

随机推荐

  1. UE4 Plugins插件分享:

    嘿,基佬你掉的插件! https://github.com/EverNewJoy/VictoryPlugin VictoryBPLibrary ---- 由活跃于 UE4 社区的某基佬 Rama 实现 ...

  2. pip自动生成requirements.txt依赖关系清单

    Python项目中经常会带requirements.txt文件,里面是项目所依赖的包的列表,也就是依赖关系清单,这个清单也可以使用pip命令自动生成. pip命令: 1 pip freeze > ...

  3. 总结之H3C汇聚层交换机认证在线人数展示系统

    前情提要:意外接了老师说的一个小程序,然后计划7天(实际10天)的小项目就冒出来了. (1)时间与工程量.在和老师开始谈具体需求前,我凭感觉猜了猜完成这个小项目的时间.然后,再和老师确定需求后,再回头 ...

  4. SqlServer性能优化 提高并发性能二(九)

    补充上一篇修改用非聚集索引: update Employee set age=age+1 from Employee with(index=nc_Employee_Age) where age< ...

  5. Sql Server 数据分页

    http://www.cnblogs.com/qqlin/archive/2012/11/01/2745161.html 1.引言 在列表查询时由于数据量非常多,一次性查出来会非常慢,就算一次查出来了 ...

  6. MVC+UnitOfWork+Repository+EF 之我见

    UnitOfWork+Repository模式简介: 每次提交数据库都会打开一个连接,造成结果是:多个连接无法共用一个数据库级别的事务,也就无法保证数据的原子性.一致性.解决办法是:在Reposito ...

  7. CoInitialize浅析一

    大家都知道程序中若要使用COM组件则必须要先调用CoInitialize,该函数主要是用来初始化COM运行环境.但这个函数的作用域是以线程为单位还是以进程为单位呢?也许大家已经通过测试程序摸索出答案, ...

  8. mysql二进制文件操作语法(mysql binary log operate statements)

    开启 binary logs 功能 在 mysql 配置文件中配置 log-bin,重启 mysql my.cnf (on Linux/unix) or my.ini (on Windows) 例子: ...

  9. ie8兼容

    最近在做ie8兼容,把遇到的问题整理了一下 1. margin:0 auto; 无法居中 解决方法:1.换成h4的文档类型 <!DOCTYPE html PUBLIC "-//W3C/ ...

  10. python3 如何使用ip、爬虫

    使用urllib.request.random模块,不说了贴代码 url="*"; iplist=['70.254.226.206:8080'];proxy_support=url ...