zoukankan      html  css  js  c++  java
  • UE4 Android Studio调试

    Android Studio(wiki:en  chs)是Google为Android应用开发(支持Java及NDK开发)而制作的一款跨平台IDE(可在Windows、OS X和Linux平台上运行)

    基于Gradle构建,并内置了Android SDK和AVD管理器。下载地址:https://developer.android.com/studio 

    首先要注意的是:Android Studio打开或调试项目,会从网上拉取一些文件(放在当前用户的文件夹中,见下图),因此,在运行Android Stuido时要把上网代理打开,保证能访问google等网站

    启动Android Stuido后,弹出工程对话框,左边列出打开过的项目工程,双击即可打开

    右边是一些功能菜单项:可新建、打开和导入一个项目工程

    使用ue4 Android工程进行调试

    这种调试方式需要自己打ue4的Android包,在本地生成出gradle android工程

    1. 点击Open an existing Android Studio project,选择并打开ue4项目的%GameDir%IntermediateAndroidAPKgradle目录

    注:如果是首次使用AndroidStudio,会触发一些文件的下载,可能会卡几分钟

    2. 设置调试的类型与lldb调试器脚本

    点击菜单“Run” -- “Edit Configurations”

    Debug type设置为Dual (Java + Native),使得可同时调试java代码和c++代码

    LLDB Startup Commands设置为:command script import "C:svnUnrealEngineEngineExtrasLLDBDataFormattersUE4DataFormatters.py"  可使用更友好的方式来查看ue4数据类型

    注1:Java代码所在目录:IntermediateAndroidAPKgradleappsrcmainjava    下图为ue4引擎自带的java代码生成得到的

    在手机上装好apk包,连接好手机线,就可以调试apk应用了

    注1:如果是首次使用AndroidStudio,这个步骤也会触发一些文件的下载,可能会卡几分钟  如:系统库调试符号文件,会放在C:Users<当前用户>.lldbmodule_cache emote-android目录中

    注2:在直接运行、调试运行、Attach时,弹出如下对话框,可将-Xmx修改为8000,然后重启Android Studio

    Debug 'app-app'来调试启动apk

    Native堆栈

    Java堆栈

    Attach Debugger to Android Process

    选择Debugger为Dual (Java + Native),并选择要调试的应用

    Native堆栈

    Java堆栈

    Debug APK

    点击工程对话框右边的“Debug or profile APK”,选择一个apk,会在C:Users<当前用户>ApkProjects新建一个apk的项目工程

    配置libUE4.so文件对应的符号版本的libUE4.so(IntermediateAndroidAPKgradleappuildintermediatesjniLibsdebugarm64-v8alibUE4.so)

    注:IntermediateAndroidAPKgradleappuildintermediatesjniLibsdebugarm64-v8alibUE4.so也会往BinariesAndroid目录中拷贝一份

    代码路径映射

    如果APK的c++代码在D:UAGroup中,而本地的C++代码在E:MyProject中,可通过建立软链接来将E:MyProject目录映射到D:UAGroup

    将映射后目录的c++代码拖入Android Studio中,就可以放置断点进行调试

    mklink /j "D:UAGroup" "E:MyProject"

    Default Activity not found

    原因1:Default Activity需要设置其action为"android.intent.action.MAIN",category设置为"android.intent.category.LAUNCHER

    <activity android:debuggable="true" android:label="@string/app_name" android:launchMode="singleTask" android:name="com.epicgames.ue4.SplashActivity" android:screenOrientation="landscape" android:theme="@style/UE4SplashTheme">
           <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
           </intent-filter>
     </activity>

    原因2:点击菜单“File” -- “Invalidate Caches / Restart”,然后重启编辑器

    原因3:AndroidManifest.xml不合规范,如:在权限申请里面有permission节点

    <permission android:name="com.tencent.mf.uam.permission.XGPUSH_RECEIVE" android:protectionLevel="signature"/>
    <uses-permission android:name="com.tencent.mf.uam.permission.XGPUSH_RECEIVE"/>

    Visual Studio调试APK

    值得一提的是,Visual Studio安装了Android移动开发组件后,也可以调试APK   详见:UE4 Android联机调试

    参考

    Android调试en

    调试预构建的 APK

    UE4引擎在Android下的C++调试 

  • 相关阅读:
    Reactive Extensions (Rx) 入门(5) —— Rx的事件编程
    Reactive Extensions (Rx) 入门(4) —— Rx的事件编程
    Reactive Extensions (Rx) 入门(3) —— Rx的事件编程
    Reactive Extensions (Rx) 入门(2) —— 安装 Reactive Extensions
    Reactive Extensions (Rx) 入门(1) —— Reactive Extensions 概要
    Xamarin NuGet 缓存包导致 already added : Landroid/support/annotation/AnimRes 问题解决方案
    Android 系统Action大全
    Xamarin Forms 实现发送通知点击跳转
    如何理解灰度发布
    推荐一款分布式微服务框架 Surging
  • 原文地址:https://www.cnblogs.com/kekec/p/12632422.html
Copyright © 2011-2022 走看看