当前位置: 首页 > 知识库问答 >
问题:

Android应用程序可以在模拟器上运行,但不能在真实设备上运行

长孙骏
2023-03-14

它可以在仿真器和真实设备(android版本4)上工作,但不能在真实设备(android版本7.0)上工作

相关代码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_card_action, container);
    application = (LaftelApplication) getActivity().getApplication();
    userId = application.getUserInfo().id;

    ratingBar = (RatingBar) view.findViewById(R.id.rating_bar);
    ImageView btnDeleteRating = (ImageView) view.findViewById(R.id.btn_delete_rating);
    btnSubscribe = (CheckableLinearLayout) view.findViewById(R.id.btn_subscribe);
    btnWish = (CheckableLinearLayout) view.findViewById(R.id.wish_item);
    btnRecommend = (CheckableLinearLayout) view.findViewById(R.id.btn_recommend);
    btnBanRecommend = (CheckableLinearLayout) view.findViewById(R.id.ban_recommend);

    mContext = getContext();
    getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    mItem = (Item) getArguments().getSerializable("item");

    ImageView itemTypeView = (ImageView) view.findViewById(R.id.item_type);
    if (mItem.type.equals(Constants.DB_ITEM_TYPE_ANIMATION)) {
        itemTypeView.setImageResource(R.drawable.label_ani_round);
    } else if (mItem.type.equals(Constants.DB_ITEM_TYPE_WEBTOON)) {
        itemTypeView.setImageResource(R.drawable.label_webtoon_round);
    } else if (mItem.type.equals(Constants.DB_ITEM_TYPE_COMICS)) {
        itemTypeView.setImageResource(R.drawable.label_comics_round);
    } else if (mItem.type.equals(Constants.DB_ITEM_TYPE_LIGHTNOVEL)) {
        itemTypeView.setImageResource(R.drawable.label_lnovel_round);
    }

    TextView itemNameView = (TextView) view.findViewById(R.id.item_name);
    itemNameView.setText(mItem.name);

    // CardAction Setting
    Call<RatingList> userPreferenceCall = application.service.getUserPreference(userId);
    userPreferenceCall.enqueue(new Callback<RatingList>() {
        @Override
        public void onResponse(Call<RatingList> call, Response<RatingList> response) {
            userRating = response.body();
            setUserPreferences();
        }

        @Override
        public void onFailure(Call<RatingList> call, Throwable t) {
        }
    });

    Call<SubscriptionList> userSubcriptionCall = application.service.getUserSubcriptionSet("application/json", userId);
    userSubcriptionCall.enqueue(new Callback<SubscriptionList>() {
        @Override
        public void onResponse(Call<SubscriptionList> call, Response<SubscriptionList> response) {
            userSubcriptionInfo = response.body();
            setUserSusbscription();
        }

        @Override
        public void onFailure(Call<SubscriptionList> call, Throwable t) {
        }
    });

logcat:

05-23 10:31:39.464 173 42-17342/laftel.net.laftel E/AndroidRuntime:致命异常:主进程:laftel.net.laftel,pid:17342 java.lang.nullPointerException:尝试读取位于Android.support.v4.app.fragment.performCreateView(CardActionFragment.java:61)的null对象引用的字段“int laftel.net.laftel.models.userinfo.id”。ExecuteOps(FragmentManager.java:2103)在Android.support.v4.app.FragmentManagerImpl.ExecpendingActions(FragmentManager.java:2013)在Android.support.v4.app.FragmentManagerImpl$1.Run(FragmentManager.java:2013)在Android.support.v4.app.FragmentManagerImpl$1.Run(FragmentManager.java:710)在Android.os.handler.HandleCallback(Handler.java:751)在

共有1个答案

丁书
2023-03-14

application=(LaftelApplication)getActivity().getApplication();OnCreateView移动到OnActivityCreated

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    application = (LaftelApplication) getActivity().getApplication();
}
 类似资料:
  • 我的Android Studio应用程序使用了OpenCV和NDK。apk太大了,所以我决定不支持x86设备(我只想支持armeabi-v7a和arm64-v8a),因此C++开发人员删除了对x86 ABI的支持,他不再可用。在我的应用程序分级中,我有: abiFilters'ARMEABI-V7A'、'ARM64-V8A' 然而,现在,该应用程序将在Google Pixel真实设备(或真实设备)

  • 在我的应用程序中,对于特定的< code>EditText,我希望句子的第一个字母是大写字母。所以我用了< code > Android:input type = " textCapSentences " 。 奇怪的是这适用于模拟器,但不适用于模拟器。我什至尝试了,即使它已被弃用,但它不起作用。 相关事实: > 模拟器操作系统:4.0.3 真实设备操作系统:4.0.4 应用minSdk版本:2.3

  • 我正在为我的Android应用程序使用Firebase身份验证和数据库。所有的一切都可以在一个仿真器上运行(Nexus 5X API 26、Nexus 6 API 26、Galaxy Nexus API 24)。当我在我的个人Galaxy S6 Edge API 24上启动应用程序时,我的Firebase相关项目都没有工作。 没有崩溃错误。 很抱歉写了这么长的日志,我似乎弄不明白问题所在。请让我知

  • 几周前我开始使用Android Studio。我在一个具有正常登录屏幕的应用程序上工作过,在模拟器上一切正常。但如果我尝试在我的三星Galaxy S7 Edge(Android 7.0)上运行该应用程序,该应用程序会立即崩溃。 我已经用API 23模拟了Nexus 5,当我用API 24模拟的Pixel尝试时,模拟器也会崩溃。所以我想问题取决于Android版本? Logcat(我把我正在使用的所

  • 应用程序不能在MAC上的模拟器和设备上运行,我只得到一个错误,说客户端还没有准备好。 我试图使Android studio失效并重新启动,试图关闭应用程序,卸载,重新运行,禁用即时运行,清理项目,重建,删除Gradle,但这些都不起作用。 下面是我得到的运行日志。 $adb推送 /Users/username/app/App/build/generalDebug-1.6.1-530966e6.ap

  • 我的应用程序在emulator上运行得很好,但当我导出后在我的智能手机(galaxy s3)上运行它时,它会在这个活动中崩溃,因为有HTTP连接!问题出在哪里?代码还是导出?当我点击连接按钮时,它崩溃了。