如何使用资源从android库项目创建Jar文件?

时间:2014-02-19 10:43:17

标签: java android eclipse jar

我想创建一个我的android库项目的Jar文件。我的项目包含布局,字符串和Drawbles等资源。我创建了Jar文件及其工作,但是当我尝试从我的jar文件中打开自定义对话框时,它会给出错误。

02-19 15:40:13.467: E/AndroidRuntime(27766): FATAL EXCEPTION: main
02-19 15:40:13.467: E/AndroidRuntime(27766): android.content.res.Resources$NotFoundException: Resource ID #0x0
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.content.res.Resources.getValue(Resources.java:1033)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.content.res.Resources.loadXmlResourceParser(Resources.java:2179)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.content.res.Resources.getLayout(Resources.java:872)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:274)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.app.Dialog.setContentView(Dialog.java:471)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at com.example.inappcarrierbilling.customDailog.DirectBillingDialog.onCreate(DirectBillingDialog.java:46)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.app.Dialog.dispatchOnCreate(Dialog.java:355)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.app.Dialog.show(Dialog.java:260)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at com.example.inappcarrierbilling.objects.BillingParams$2.onPostExecute(BillingParams.java:318)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at com.example.inappcarrierbilling.objects.BillingParams$2.onPostExecute(BillingParams.java:1)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.os.AsyncTask.finish(AsyncTask.java:631)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.os.AsyncTask.access$600(AsyncTask.java:177)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.os.Looper.loop(Looper.java:153)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at android.app.ActivityThread.main(ActivityThread.java:5297)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at java.lang.reflect.Method.invokeNative(Native Method)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at java.lang.reflect.Method.invoke(Method.java:511)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
02-19 15:40:13.467: E/AndroidRuntime(27766):    at dalvik.system.NativeStart.main(Native Method)

我不想在我的代码项目中放置may库资源。

2 个答案:

答案 0 :(得分:2)

一种方法是

构建项目然后从bin复制jar(为此你的项目应该是一个库项目)

答案 1 :(得分:1)

Jar文件不能包含布局,drawable和字符串等资源。您必须将库作为库项目链接到非库项目。

首先确保您的library project is marked as library,然后使用here中的步骤导入库。