Android Library Project 使用问题总结


http://blog.csdn.net/lznsnail/article/details/8263765


http://www.w3c.com.cn/android%E8%AE%A9library%E4%B8%ADmanifest%E4%B9%9F%E5%8C%85%E5%90%AB%E8%BF%9B%E6%9D%A5



 

1. 当新建Android Library Project 工程或将已有工程转化为Android Library Project, 如果工程源代码中有如下语句:

int id = view.getId();
switch (id) {
case R.id.button1:
action1();
break;
case R.id.button2:
action2();
break;
case R.id.button3:
action3();
        break;
}

会提示case expressions must be constant expressions 错误,原因是ADT14后Android库工程中R.class中的资源常量不在为final类型,原因

见http://tools.android.com/tips/non-constant-fields 官方解释。所以例子上面的R.id.button1不再问常量,就不能用在switch结构中,简单的解决

方法是将switch 转化成if-else语句,这在eclipse中非常容易实现,将光标置于switch关键字上,按ctrl+1,按下图进行装换




2.  如果Android Library Project中有Activity,可以不必再库工程的清单文件中声明,但一定要在使用该库的工程中进行声明,因为manifest 配置文件是独立给工程的,不能复用。


3. 如果Android Library Project中用到第三方jar包,也要讲其导入使用该库的工程中



  以上主要是第一个问题 报错


  =============================================================================================

Android可以通过use library来引用另一个Project,但是通常我们需要把library中activity需要在主Project的manifest文件重新配置,这样非常麻烦

在主Project的project.properties里加上

manifestmerger.enabled=true 就可以不用合并library中的manifest了          (修改后,clearn一下就可以运行了,亲测得意

clean后项目可能会报错,原因必须保证:

you should be confirmed some point like ADT version, Also Minimum and target SDK should be same as library project.

你应该确保adt版本ADT(可能是 20.0.1以上),最小和target SDK 必须一致。

<uses-sdk

        android:minSdkVersion=”int”

        android:targetSdkVersion=”int” />

 http://stackoverflow.com/questions/10976635/using-the-new-manifestmerger-property-in-android


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值