Android 向aosp包添加包含资源的库
我正在使用AOSP,我想创建自己的库并在应用程序中使用它(来自packages/app/)。我的库只有一个类:Android 向aosp包添加包含资源的库,android,android-layout,android-source,Android,Android Layout,Android Source,我正在使用AOSP,我想创建自己的库并在应用程序中使用它(来自packages/app/)。我的库只有一个类: 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 {
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);
}
}
它有自己的布局。此库的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)
没有编译错误。但当我在android应用程序中使用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)
据我所知,android应用程序无法从我的库中找到布局。那么我该如何解决这个问题呢?(您的项目)右键单击,然后选择属性->Java构建路径->选择选项卡顺序并导出,那么您的添加库将处于未选中状态。检查lib是否已清理并运行您的项目
希望这对你有帮助