java - 如何启动 jar 文件中的 Activity ?

标签 java android intellij-idea android-simple-facebook

我正在开发一个使用 facebook sdkandroid-simple-facebook 库(“包装器”库)的 android 应用程序。 android-simple-facebook 库依赖于 facebook sdk 而我的应用依赖于 android-simple-facebook

我创建了一个包含两个库的编译输出的 jar 文件(通过 IDEA 模块设置中的 Artificats)。
我也需要 facebook sdk 编译输出,因为我在我的 AndroidManifest.xml 中引用了 facebook 的 LoginActivity:

<activity
android:name="com.facebook.LoginActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />

我创建这个 jar 文件的原因是我不是唯一一个从事这个项目的开发人员,我不希望任何开发这个项目的人引用 2 个库。我只希望他们使用我创建的静态 jar。
所以 jar get 被创建并且一切都很好,没有编译错误,但是当调用 login() 函数时,我猜它启动了 facebook 的 LoginActivity,我得到以下异常:

Unable to resume activity {com.example.example/com.facebook.LoginActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f02000a

我怀疑是LoginActivity.onCreate() 执行setContentView(R.layout.com_facebook_login_activity_layout) 但我没有看到任何jar 文件中的资源(例如布局文件)。

任何有关如何实现我拥有一个工作 jar 的目标的帮助将不胜感激!


关于我的设置的一些附加信息:

  • 我的 libs 文件夹和 jar 的内容:
    libs and jar contens
  • 人工设置:
    Artificat settings

最佳答案

我最终做的是将库(存储库)添加为 git 中的子模块和我的项目中的模块。 所以,我不知道答案是否真的是“不,做不到”,但这就是我现在解决问题的方式。

希望对大家有帮助。

关于java - 如何启动 jar 文件中的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22722379/

相关文章:

Java jUnit : Test suite code to run before any test classes

java - 一键操作和两种不同的 View

java - 通用 java 函数使用的 "Class type"的 "type parameter"

android - 如何解决致命异常 : DefaultDispatcher-worker-4

android - 如何从我的 Android 版本中删除导航栏?

java - 开发环境中的 Gradle 构建参数

java - IntelliJ — Gradle 'test'项目刷新失败错误:错误:无法为锁定文件创建父目录

java - 在动态图中找到最短路径

android - 为 Android 应用程序创建通用 header

java - IntelliJ IDEA 中 JDK 捆绑版本的主目录