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++调试 

  • 相关阅读:
    [Knowledge-based AI] {ud409} Lesson 8: 08
    [Knowledge-based AI] {ud409} Lesson 7: 07
    [Knowledge-based AI] {ud409} Lesson 6: 06
    [Knowledge-based AI] {ud409} Lesson 5: 05
    [Knowledge-based AI] {ud409} Lesson 4: 04
    [Knowledge-based AI] {ud409} Lesson 3: 03
    [Knowledge-based AI] {ud409} Lesson 2: 02
    [Knowledge-based AI] {ud409} Lesson 1: 01
    [Software Development Process] {ud805} excerpt
    [Machine Learning for Trading] {ud501} Lesson 25: 03-05 Reinforcement learning | Lesson 26: 03-06 Q-Learning | Lesson 27: 03-07 Dyna
  • 原文地址:https://www.cnblogs.com/kekec/p/12632422.html
Copyright © 2011-2022 走看看