Java 启动外部活动时出现无休止的问题-找不到资源

Java 启动外部活动时出现无休止的问题-找不到资源,java,android,resources,Java,Android,Resources,在这里开发我的第一个Android应用程序。我已经搜索并尝试了我能想到的一切,但没有运气 作为我应用程序的一部分,我正在尝试合并一个单独的文件选择器项目。我试图将选择器分开,以便将来的许多项目可以共享它。就其本身而言,它发射性能良好。问题是,当我尝试从主应用程序启动它时,会得到一个Resources.NotFoundException。我遇到了类Not Found的问题,我想我已经通过将选择器包含在Java构建路径中并包含在主应用程序的Android清单中解决了这个问题 主要应用程序清单: &l

在这里开发我的第一个Android应用程序。我已经搜索并尝试了我能想到的一切,但没有运气

作为我应用程序的一部分,我正在尝试合并一个单独的文件选择器项目。我试图将选择器分开,以便将来的许多项目可以共享它。就其本身而言,它发射性能良好。问题是,当我尝试从主应用程序启动它时,会得到一个
Resources.NotFoundException
。我遇到了类Not Found的问题,我想我已经通过将选择器包含在Java构建路径中并包含在主应用程序的Android清单中解决了这个问题

主要应用程序清单:

<application ...    
    <activity android:name=".MyMainApp" ...
    <activity android:name=".MyOtherActivity" ...
    <activity android:name="com.didjit.filechooser.FileChooser"/>
</application       
在事物的选择器端,找不到的资源是
R.layout.main

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    browseToRoot();
    findViewById(R.id.btnDone).setOnClickListener(this);
}
它抛出的错误如下:

: FATAL EXCEPTION: main
: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.didjit.MyMainApp/com.didjit.filechooser.FileChooser}: android.content.res.Resources$NotFoundException: Resource ID #0x7f030001
...
12-27 18:07:00.296: E/AndroidRuntime(1961): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030001
我怀疑的一件事是
com.didjit.MyMainApp/com.didjit.filechooser.filechooser
,好像它将外部项目视为一个子组件

另外,我担心我在努力解决这个问题的时候会破坏项目配置。最初,找不到选择器类。似乎把它列在
Java构建路径/Projects
下是不够的;我还必须在
javabuildpath/Libraries
下包含class文件夹。如果我将chooser项目设置为库,我也会遇到同样的问题

那么。。。为什么现在可以找到项目的类,却找不到资源?任何帮助都将不胜感激。谢谢

另外,这是在Eclipse中,根据API 10编码。

尝试替换

Intent intent = new Intent(this, com.didjit.filechooser.FileChooser.class);


你目前的做法是告诉他们活动在你当前项目中的意图。这就是为什么找不到外部资源的原因。我建议的方法是打开外部应用程序的标准方法。

这些方法对我都不起作用。我找到了解决这个问题的另一种方法

您可以使用:

Intent i = new Intent("Whatever");
i.setComponent(new ComponentName("com.didjit.filechooser","com.didjit.filechooser.FileChooser"));
startActivity(i);

其中,“com.didjit.filechooser”是您的包名,“com.didjit.filechooser.filechooser”是您要开始的活动的名称。

谢谢,@AlexPaino,基本上就是这样!我用action
com.didjit.filchooser.intent.action.SELECT\u action
创建了一个新的intent。然后将其作为公共字符串(名为SELECT\u ACTION)添加到FileChooser类中。最后,调用类使用
新意图(FileChooser.SELECT\u ACTION)
。谢谢你纠正我的错误!
Intent intent = new Intent("com.didjit.filechooser.FileChooser");
Intent i = new Intent("Whatever");
i.setComponent(new ComponentName("com.didjit.filechooser","com.didjit.filechooser.FileChooser"));
startActivity(i);