【问题标题】:How to create Jar file from android library project with resources?如何使用资源从 android 库项目创建 Jar 文件?
【发布时间】:2014-02-19 18:54:09
【问题描述】:

我想为我的 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)

我不想将可能的库资源放在我的代码项目中。

【问题讨论】:

    标签: java android eclipse jar


    【解决方案1】:

    一种方法是

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

    【讨论】:

    • 如果我只有代码而不是资源,这将起作用,但这也可以帮助我。非常感谢。
    【解决方案2】:

    Jar 文件不能包含布局、可绘制对象和字符串等资源。您必须将库作为库项目链接到非库项目。

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

    【讨论】:

    • 好的,谢谢您提供的信息,但一些图书馆使用 text2pay 图书馆等资源,除了问题是他们将如何使用资源?
    • 我不知道那个库,但我可以向您保证 Android jar 不能包含资源。这就是为什么某些 android 支持库必须作为库项目而不是 jar 导入的原因。
    • 你是对的 jar 不能包含资源文件我只是将我的所有资源复制到客户端代码和它的工作谢谢...
    猜你喜欢
    • 1970-01-01
    • 2014-08-20
    • 1970-01-01
    • 2013-06-08
    • 2017-01-29
    • 2014-08-28
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多