Java 将资源添加到从项目创建的库中

Java 将资源添加到从项目创建的库中,java,android,resources,libraries,Java,Android,Resources,Libraries,我还有一个问题: 我想得到一个基于android项目的库,并在另一个项目中将其用作“外部”库 可能吗 如果可能的话-我的主要问题是:如何向库中添加资源?Project Properties->Android->“As Library”只添加.class文件 神秘化: public class ClassForLibrary extends Activity{ onCreate(){ setContentView(R.layout.library_activity_

我还有一个问题: 我想得到一个基于android项目的库,并在另一个项目中将其用作“外部”库

  • 可能吗

  • 如果可能的话-我的主要问题是:如何向库中添加资源?Project Properties->Android->“As Library”只添加.class文件

  • 神秘化:

    public class ClassForLibrary extends Activity{
    
          onCreate(){
             setContentView(R.layout.library_activity_layout);
          }
    
          method1(){
          }
    
          method2(){
          }
    }
    
    所以,我想要一个包含两个文件的库:ClassForLibrary.class和library\u activity\u layout.xml

    接下来,我想使用生成路径添加此库

    并以以下方式启动应用程序:

    public class MainActivity extends ClassForLibrary {
    
        . . . . . . . . . . 
    
    }
    
    我尝试过很多代码构造,但最接近的情况是

    Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030001.
    
    #0x7f030001
    是我的库_activity_layout.xml,我手动将其放入创建的库中


    С有人帮我吗?

    您不能在其他应用程序中访问私有库文件,除非库本身公开这些文件。在您的情况下,您的库需要创建一个函数,让应用程序用自己的布局替换布局。比如:

    public class ClassForLibrary extends Activity{
    
      onCreate(){
         setContentView(R.layout.library_activity_layout);
      }
    
      public overrideContentView(ViewGroup root){
          .... replace root view with the one passed in....
      }
    
      method1(){
      }
    
      method2(){
      }
    }
    

    嘿你偷看了我的密码!)这就是我正在做的(好吧,稍微复杂一点)。当我想要膨胀未列出的资源时,问题出现在重写的setContentView()中。因此,我将尝试创建动态布局,而不是静态资源。也许这是唯一的办法。我真的很感谢你的建议。太多了!没问题!如果这个答案对您有帮助,请随意接受:)