Android新手心得——制作第三方jar包及使用

打包第三方jar包,主要针对第三方工程文件中包含资源文件的情况:
因为资源文件不能直接打包到jar包中,所以此种情况需特殊处理,可能处理方式有多种,
此处指列出我在项目中测试使用过的。
1.jar包源码中不能用R..的方式访问资源,可如此替换。

package org.coolx.getresourse;

import android.content.Context;

public class ResourceUtil {
      public static int getLayoutId(Context paramContext, String paramString) {  
            return paramContext.getResources().getIdentifier(paramString, "layout",  
                    paramContext.getPackageName());  
        }  

        public static int getStringId(Context paramContext, String paramString) {  
            return paramContext.getResources().getIdentifier(paramString, "string",  
                    paramContext.getPackageName());  
        }  

        public static int getDrawableId(Context paramContext, String paramString) {  
            return paramContext.getResources().getIdentifier(paramString,  
                    "drawable", paramContext.getPackageName());  
        }  

        public static int getStyleId(Context paramContext, String paramString) {  
            return paramContext.getResources().getIdentifier(paramString,  
                    "style", paramContext.getPackageName());  
        }  

        public static int getId(Context paramContext, String paramString) {  
            return paramContext.getResources().getIdentifier(paramString,  
                    "id", paramContext.getPackageName());  
        }  

        public static int getColorId(Context paramContext, String paramString) {  
            return paramContext.getResources().getIdentifier(paramString,  
                    "color", paramContext.getPackageName());  
        }  

        public static int getRawId(Context paramContext, String paramString) {  
            return paramContext.getResources().getIdentifier(paramString,  
                    "raw", paramContext.getPackageName());  
        }  
}

2.通过eclipse直接导出(Export)jar包,同时释放资源文件给jar包使用者。

如何使用第三方jar包:
1.在eclipse环境下:
a.在项目的根目录下建立libs目录,然后将你需要的第三方JAR包放在该目录下。
b.在Eclipse中,在项目上右键,先择Properties,会出现一个对话框,在对话框左边选择Java Build Path,然后点击右边的Add Class Folder,选择项目下的刚刚新建的libs目录。
注:使用第三方库时,可能会遇上此问题,编译运行会出现错误提示:
Unable to execute dex: Multiple dex files define…
此情况多半是由于重复包含jar包引起的,可通过Android Dependencies和Android Private Libraries查看确认。

2.在源码编译的环境(没有eclipse等图形化工具,直接在服务器上编译)
a.在工程中建libs(可任意名)文件夹,将第三方jar包放入其中。
b.修改Android.mk文件,此处只列出关键部分代码。

LOCAL_PATH:= $(call my-dir)
#此处的jar_name可自己随意取名,只是类似找到文件路径的索引名
jar_libs = jar_name1 jar_name2 ...

LOCAL_STATIC_JAVA_LIBRARIES := $(jar_libs)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := jar_name1:libs/jar_name1.jar \
jar_name2:libs/jar_name2.jar

include $(BUILD_MULTI_PREBUILT)

c.如果第三方jar包附带有资源文件,还需将资源文件拷贝到新项目的资源文件路径下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值