2014-03-20 5 views
7

저는 AOSP로 작업 중이며 자체 라이브러리를 만들어 app (packages/app /에서 제공)에서 사용하고 싶습니다. 내 라이브러리에는 하나의 수업 만 있습니다.aosp 패키지에 리소스가있는 라이브러리 추가하기

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class MyFragment extends Fragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.my_fragment, container, false); 

    } 

} 

고유 한 레이아웃이 있습니다. 이 lib의 Android.mk는 다음과 같습니다.

LOCAL_PATH:= $(call my-dir) 
include $(CLEAR_VARS) 

LOCAL_MODULE := my.own.package 
LOCAL_NO_MANIFEST := true 

LOCAL_SRC_FILES := $(call all-java-files-under, src) 

LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res 

include $(BUILD_STATIC_JAVA_LIBRARY) 

컴파일 오류가 없습니다. 하지만 안드로이드 응용 프로그램에서 내 lib를 사용하면 충돌이 발생합니다 :

E/AndroidRuntime(1030): FATAL EXCEPTION: main 
E/AndroidRuntime(1030): java.lang.NoClassDefFoundError: my.own.package.R$layout 
E/AndroidRuntime(1030): at my.own.package.MyFragment.onCreateView(MyFragment.java:17) 
E/AndroidRuntime(1030): at android.app.Fragment.performCreateView(Fragment.java:1695) 
E/AndroidRuntime(1030): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885) 
E/AndroidRuntime(1030): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057) 
E/AndroidRuntime(1030): at android.app.BackStackRecord.run(BackStackRecord.java:682) 
E/AndroidRuntime(1030): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435) 
E/AndroidRuntime(1030): at android.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:474) 

알다시피, 안드로이드 애플 리케이션은 내 lib에서 레이아웃을 찾을 수 없습니다. 그렇다면이 문제를 어떻게 해결할 수 있습니까? 바로을 클릭 한 다음 속성 -> 자바를 선택

답변

-1

(프로젝트 _)는 다음 추가 lib 디렉토리가 체크되지 않은 상태가됩니다 경로 -> 선택 탭 주문 및 내보내기을 구축 할 수 있습니다. lib가 깨끗하고 실행중인 ur 프로젝트를 확인하십시오.

희망이 도움이됩니다.