我想通過從另一個Android應用程序啓動一個活動來將一些功能添加到瀏覽器應用程序中。它讓我package does not exist
,而我做主項目。請注意,我看到AndroidLib成功建成一個out/target/product/generic/data/app/AndroidLib.apk
在AOSP應用程序中添加一個Android項目作爲庫
這裏有兩個android.mk文件: AndroidLib(正常的Android應用程序)
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_STATIC_JAVA_LIBRARIES := \
google-ps \
android-support-v4 \
LOCAL_SRC_FILES := \
$(call all-java-files-under, src) \
LOCAL_MODULE := AndroidLib
LOCAL_PACKAGE_NAME := AndroidLib
LOCAL_MODULE_TAGS := tests
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := google-ps:libs/google-play-services.jar
include $(BUILD_PACKAGE)
# additionally, build tests in sub-folders in a separate .apk
include $(call all-makefiles-under,$(LOCAL_PATH))
瀏覽應用程序
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_LIBRARIES := \
android-common \
guava \
android-support-v13 \
android-support-v4 \
LOCAL_SRC_FILES := \
$(call all-java-files-under, src) \
src/com/android/browser/EventLogTags.logtags
LOCAL_PACKAGE_NAME := Browser
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
LOCAL_EMMA_COVERAGE_FILTER := *,-com.android.common.*
# We need the sound recorder for the Media Capture API.
LOCAL_REQUIRED_MODULES := SoundRecorder, AndroidLib
include $(BUILD_PACKAGE)
# additionally, build tests in sub-folders in a separate .apk
include $(call all-makefiles-under,$(LOCAL_PATH))
然後我做:
make -j Browser
它給我︰
packages/apps/Browser/src/com/android/browser/BrowserActivity.java:36: package com.om.AndroidLib does not exist
import com.om.AndroidLib.MainActivity;
有你聲明的庫項目到主項目清單與有包裝name.And所有活動也檢查PAC kage名稱在您的圖書館項目的清單中被剝奪。 – Meenal
@MeenalSharma:我認爲它應該與使用Eclipse並將A定義爲庫時相同,然後將該庫添加到主項目中。我是否需要將A Lib的聲明覆制到主項目中? –
是的,你必須複製,因爲你運行的是主項目而不是庫,當庫項目的活動被調用時,它是從主項目中獲取的。 – Meenal