2012-05-25 2 views
1

몇 가지 활동이 포함 된 Android 라이브러리 프로젝트를 만들었습니다. 나는 다른 프로젝트에서 이러한 활동을 재사용하고 싶다. 어떻게 할 수 있니? 나는Android Libary (.jar)에서 활동 호출?

프로젝트 -> Android 기기,> 추가를 통해 프로젝트를 추가 한 (안드로이드 도서관 프로젝트.)

그런 다음 안드로이드 매니페스트 파일에 필요한 세부 사항을 추가했다.

안드로이드 매니페스트 파일 :

<?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="org.testlib.com" 
     android:versionCode="1" 
     android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="9" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-libraryandroid:name="org.mainlib.com" android:required="true"/> 
    <application android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity android:name=".TestLibActivity" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" />  
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="org.mainlib.com.MainActivity"/>     
    </application>  
</manifest> 

코드가 활동을 시작합니다 :

Intent myintent=new Intent(v.getContext(),MainActivity.class); 
startActivityForResult(myintent, 0); 

가 어떻게 y를 jar 파일에서 활동을 호출 할 수 있습니다 ?

답변

2

질문이 이해가 가지 않습니다. 당신은

어떻게 라이브러리

외부에서 'TestLibActivity'을 시작하는 의미합니까? 그런 경우에는

, 당신은 당신이 당신의 활동에 적합한 가져 오기를 추가하고 프로젝트에 라이브러리를 추가해야 물론 Intent myintent=new Intent(v.getContext(),org.testlib.com.TestLibActivity.class); startActivityForResult(myintent, 0);

호출하여 호출 할 수 있습니다.

+0

아니요, 안드로이드 라이브러리 프로젝트 패키지 ie : org.mainlib.com.MainActivity.class가 있습니다. 다른 프로젝트에서 해당 클래스를 호출하고 싶습니다. 그래서 안드로이드 라이브러리 프로젝트 (org.mainlib.com)의 .jar 파일을 가져옵니다.) 현재 프로젝트에 MainActivity를 얻지 못했습니다. 또 하나의 문제는 : 프로그래밍 방식으로 UI를 만들면 괜찮을 것입니다. – Kishore

+0

jar 파일을 사용할 때 리소스 xml 파일이 새 프로젝트에로드되지 않았습니다. – Kishore

+0

'import org.mainlib.com.MainActivity; inside button clik : Intent (v.getContext(), org.mainlib.com.MainActivity.class); startActivityForResult (myintent, 0);'그러나 작동하지 않습니다. – Kishore

2

android 라이브러리를 만들고 올바르게 추가 한 경우 (보이는 것처럼). 그렇다면 당신이하는 유일한 일은 당신이 정기적으로하는 일과 똑같은 일입니다. 유일한 차이점은 자신의 프로젝트 대신 라이브러리 프로젝트에서 경로를 가져 오는 것입니다.

참고로 매니페스트에 라이브러리를 추가 할 필요가 없습니다. 프로젝트 속성을 통해 라이브러리 프로젝트를 추가하기 만하면됩니다.

+0

매니페스트 파일에서 라이브러리를 삭제할 때 다음 오류가 발생합니다 ..ActivityNotFoundException : 명시 적 활동 클래스 {org.testlib.com/org.mainlib.com.MainActivity}을 (를) 찾을 수 없습니다. AndroidManifest.xml에서이 활동을 선언하셨습니까? – Kishore

+0

예. 라이브러리 프로젝트의 매니페스트에서 기본 프로젝트가 아닌 활동을 선언해야합니다. – Warpzit

관련 문제