JAR中的Android库资源



我想写一个Android类库项目。起初我试图引用项目,但得到ClassDefNotFound错误。因此,我所做的是从库项目输出中获取JAR文件并将其放入我的项目中。现在我没有得到未找到的类,但我得到一个错误,它找不到资源(库有字符串,样式,anims…)。

05-30 02:27:00.255: E/AndroidRuntime(2083): java.lang.NoClassDefFoundError: com.mycompany.popupdialog.R$style
05-30 02:27:00.255: E/AndroidRuntime(2083):     at com.mycompany.popupdialog.Popupdialog.<init>(SweetAlertDialog.java:75)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at com.mycompany.popupdialog.Popupdialog.<init>(SweetAlertDialog.java:71)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at com.mycompany.androidApplication.MainActivity$2.onClick(MainActivity.java:156)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at android.view.View.performClick(View.java:4240)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at android.view.View$PerformClick.run(View.java:17721)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at android.os.Handler.handleCallback(Handler.java:730)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at android.os.Looper.loop(Looper.java:137)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at android.app.ActivityThread.main(ActivityThread.java:5103)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at java.lang.reflect.Method.invokeNative(Native Method)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at java.lang.reflect.Method.invoke(Method.java:525)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
05-30 02:27:00.255: E/AndroidRuntime(2083):     at dalvik.system.NativeStart.main(Native Method)

我如何在JAR文件中拥有所需的所有资源,而不必将它们包含在托管项目中?

在引用项目的情况下-我尝试做我在网上找到的关于清理项目的一切,将项目设置为顺序&

我认为这背后的问题是,你只是把你的库jar在你的lib文件夹,但没有附加到BuildPath

try this

右键单击您所附加的jar。

进入BuildPath,

点击添加到BuildPath。

希望能有所帮助

  1. 我认为你的Android Menifests文件包名称不正确,

  2. 请检查您的包名是否与menifest文件中的包名相同。
  3. 重建您的项目。

  4. 重新启动IDE

特别是对于Eclipse,您需要将库添加到当前工作空间,然后引用它。参考链接:[1]


要从一个单独的模块中获取android应用程序的资源,您需要在outputs/build/aar文件夹中获取编译后的.aar文件。将它放到libs文件夹中,然后通过以下操作引用它:[2]

1)将以下代码添加到构建中的存储库块中。Gradle使它看起来像这样:

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

2)你现在在你的依赖项中引用它!:

dependencies {
   compile 'com.kevinpelgrims.library:library:1.0.0@aar'
}

[1] http://developer.android.com/tools/projects/projects-eclipse.html ReferencingLibraryProject

[2] http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project/

相关内容

  • 没有找到相关文章

最新更新