2011-12-27 3 views
2

내 첫 번째 Android 앱에서 작업 중입니다. 나는 생각하고 생각할 수있는 모든 것을 시도했지만 행운은 없다. ...외부 활동을 시작하는 끝없는 문제 - 리소스를 찾을 수 없음

나는 내 애플리케이션의 일부로 별도의 파일 선택기 프로젝트를 통합하려고한다. 나는 그것이 미래의 많은 프로젝트들에 의해 공유 될 수 있도록 선택자를 분리 시키려고 노력하고있다. 그리고 그 자체로는 괜찮습니다. 문제는 내 응용 프로그램에서 실행하려고 할 때 Resources.NotFoundException이 발생하는 것입니다. Class Not Found에 문제가 있었는데 Java Build Path에 선택기를 포함 시켰고 기본 앱의 Android Manifest에 포함되었다고 생각합니다.

홈페이지 앱 매니페스트 :

<application ...  
    <activity android:name=".MyMainApp" ... 
    <activity android:name=".MyOtherActivity" ... 
    <activity android:name="com.didjit.filechooser.FileChooser"/> 
</application  

파일 선택기이에 의해 주요 코드에서 시작됩니다 :

사물의 선택기 측면에서
Intent intent = new Intent(this, com.didjit.filechooser.FileChooser.class); 
startActivityForResult(intent, REQ_CODE_CHOOSE_SOURCE); 

, 찾을 수 없다는 것 자원이 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 Build Path/Projects 아래 나열된 데 충분하지 않은 것 같았다; Java Build Path/Libraries 아래에 클래스 폴더도 포함시켜야했습니다. 선택기 프로젝트를 라이브러리로 만들면 같은 문제가 발생했습니다.

그럼 ... 왜 프로젝트의 클래스는 현재 찾을 수 있지만 리소스는 아닌가? 어떤 도움이라도 대단히 감사 할 것입니다. 감사!

P. 이 API에 대해 코딩, 이클립스에 10

답변

1

그들은이 방법으로 현재는 활동이 현재 프로젝트 안에있는 의도를 말하고 일을

Intent intent = new Intent("com.didjit.filechooser.FileChooser"); 

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

를 교체하십시오 . 그것이 외부 자원을 찾지 않는 이유입니다. 내가 제안하는 방식은 외부 응용 프로그램을 여는 표준 방법입니다.

+0

감사합니다. @AlexPaino, 본질적으로 그 것이 었습니다! 나는'com.didjit.filchooser.intent.action.SELECT_ACTION' 액션으로 새로운 의도를 만들었다. 그런 다음이를 FileChooser 클래스에 public string (SELECT_ACTION)으로 추가했습니다. 마지막으로, 호출 클래스는'new Intent (FileChooser.SELECT_ACTION)'을 사용합니다. 나를 교정 해줘서 고마워! – Didjit

0

나를 대신 할 수있는 것은 없습니다. 나는 그 문제에 대한 또 다른 접근법을 발견했다.

당신은 사용할 수 있습니다

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는"시작하려는 활동의 이름입니다

.

관련 문제