引擎世界丨EngineWorld.CN

标题: UE4导出安卓文件用android studio进行二次开发 [打印本页]

作者: 孤独小码农    时间: 2018-5-15 02:38
标题: UE4导出安卓文件用android studio进行二次开发
UE4导出工程文件用android studio进行二次开发

作者: mknmknmk    时间: 2018-5-15 09:00
本帖最后由 mknmknmk 于 2018-5-15 09:01 编辑

https://pan.baidu.com/s/12lloKrVo1OZgXENTZ6TYiw

bhrt

搜索源文件 _APL.xml

作者: 孤独小码农    时间: 2018-5-15 10:13
mknmknmk 发表于 2018-5-15 09:00
https://pan.baidu.com/s/12lloKrVo1OZgXENTZ6TYiw

bhrt

谢谢大佬
作者: 孤独小码农    时间: 2018-5-15 11:23
mknmknmk 发表于 2018-5-15 09:00
https://pan.baidu.com/s/12lloKrVo1OZgXENTZ6TYiw

bhrt

tanke2\Intermediate\Android\APK
大佬我在这包找到了项目文件,是这个东西吧!
可是没有办法用android studio打开
作者: uper2011    时间: 2018-5-15 12:12
支持一下!!!!!!!!1
作者: mknmknmk    时间: 2018-5-15 14:35
你只需 拷贝gameactivity  和 ue4.so   加入到你的工程,

把你的 so文件加入 然后修改gameactivity      通过 _APL 修改拷贝的静态库动态,动态修改gameactivity
查看 https://forums.unrealengine.com/ ... -language-reference
作者: mknmknmk    时间: 2018-5-15 14:38
本帖最后由 mknmknmk 于 2018-5-15 14:48 编辑

https://answers.unrealengine.com ... y-or-extend-ga.html

这个就是修改 gameActivity 的xml 语言 ,其中包含java 语言。

https://blog.csdn.net/or_7r_ccl/article/details/72899036


https://blog.csdn.net/maxiaosheng521/article/details/61914832

作者: mknmknmk    时间: 2018-5-15 14:52
mknmknmk 发表于 2018-5-15 14:35
你只需 拷贝gameactivity  和 ue4.so   加入到你的工程,

把你的 so文件加入 然后修改gameactivity       ...

http://aigo.iteye.com/blog/2278608
作者: mknmknmk    时间: 2018-5-15 15:01
修改 gameactivity 源文件不可取 ,只有修改_APL.xml 添加你的import   方法 属性 给gameactivity ,里面还有资源 已经动态库的拷贝,tag 节点的动态添加 tag 属性修改。 c++ 和 java 互相调用等。
作者: 孤独小码农    时间: 2018-5-15 20:19
mknmknmk 发表于 2018-5-15 15:01
修改 gameactivity 源文件不可取 ,只有修改_APL.xml 添加你的import   方法 属性 给gameactivity ,里面还 ...

多谢大佬指导,我脑子还有点乱要屡屡
作者: 孤独小码农    时间: 2018-5-15 22:33
mknmknmk 发表于 2018-5-15 15:01
修改 gameactivity 源文件不可取 ,只有修改_APL.xml 添加你的import   方法 属性 给gameactivity ,里面还 ...

大神太复杂了,有没有转换好的dame,拿我对比研究下,再次说声谢谢
作者: mknmknmk    时间: 2018-5-16 08:54
本帖最后由 mknmknmk 于 2018-5-16 08:58 编辑
孤独小码农 发表于 2018-5-15 22:33
大神太复杂了,有没有转换好的dame,拿我对比研究下,再次说声谢谢

4.18.3 一个安卓的插件
https://pan.baidu.com/s/1FhQf9zs-1DZOkm3vcKP1Yg

w2rk
重点看_APL.xml

https://forums.unrealengine.com/ ... stored-before-setup

作者: 孤独小码农    时间: 2018-5-16 10:31
mknmknmk 发表于 2018-5-16 08:54
4.18.3 一个安卓的插件
https://pan.baidu.com/s/1FhQf9zs-1DZOkm3vcKP1Yg

我都不好意思问了,不好意思我是新手,那安卓插件怎么用,
作者: mknmknmk    时间: 2018-5-17 08:57
        以GoogleARCoreBase_APL.xml 为例
<resourceCopies> 是资源和动态库拷贝
<androidManifestUpdates> 是权限更新
<gameActivityImportAdditions>  GameActivity import 库
  <gameActivityClassAdditions> 插入代码
有一个方法 AndroidThunkJava_CreateTangoObject() 是java 实现的
FGoogleARCoreAndroidHelper::CreateTangoObject() c++ 调用java的

<soLoadLibrary> 是加载动态库

TangoNativeEngineMethodWrapper.java  java 调用C++
    public static native void onPoseAvailableNative(TangoPoseData pose); c++ 实现

Java_com_projecttango_unreal_TangoNativeEngineMethodWrapper_onPoseAvailableNative c++ 实现。

作者: mknmknmk    时间: 2018-5-17 09:58
本帖最后由 mknmknmk 于 2018-5-17 10:01 编辑

AndroidPermission_APL.xml 为例
<copyDir src > java 文件的拷贝

static bool CheckPermission(const FString& permission); 调用java 方法。

PermissionHelper.java
有         public static native void onAcquirePermissions(String permissions[], int grantResults[]);

对应 c++ 的
Java_com_google_vr_sdk_samples_permission_PermissionHelper_onAcquirePermissions

作者: 孤独小码农    时间: 2018-5-18 00:16
mknmknmk 发表于 2018-5-17 09:58
AndroidPermission_APL.xml 为例
java 文件的拷贝

我大概想明白了,这么做的目的是为了,在新建的安卓项目里启动c++引擎方法,对吧!!
作者: mknmknmk    时间: 2018-5-19 10:16
在安卓项目里不行,在java文件里写好, c++ 对应方法也写好, 编译时 java文件拷贝。 调用java 方法 , c++ 方法执行。
作者: 孤独小码农    时间: 2018-5-25 20:42
mknmknmk 发表于 2018-5-19 10:16
在安卓项目里不行,在java文件里写好, c++ 对应方法也写好, 编译时 java文件拷贝。 调用java 方法 , c++ ...

http://www.runoob.com/w3cnote/jni-getting-started-tutorials.html
我才搞明白那些是用JNI技术做的混编

作者: 孤独小码农    时间: 2018-5-28 13:34
mknmknmk 发表于 2018-5-19 10:16
在安卓项目里不行,在java文件里写好, c++ 对应方法也写好, 编译时 java文件拷贝。 调用java 方法 , c++ ...

      java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/base.apk", zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_dependencies_apk.apk", zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_0_apk.apk", zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_1_apk.apk", zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_2_apk.apk", zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_3_apk.apk", zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_4_apk.apk", zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_5_apk.apk", zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_6_apk.apk", zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_7_apk.apk", zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_8_apk.apk", zip file "/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/lib/arm, /system/fake-libs, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/base.apk!/lib/armeabi-v7a, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_dependencies_apk.apk!/lib/armeabi-v7a, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_0_apk.apk!/lib/armeabi-v7a, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_1_apk.apk!/lib/armeabi-v7a, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_2_apk.apk!/lib/armeabi-v7a, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_3_apk.apk!/lib/armeabi-v7a, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_4_apk.apk!/lib/armeabi-v7a, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_5_apk.apk!/lib/armeabi-v7a, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_6_apk.apk!/lib/armeabi-v7a, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_7_apk.apk!/lib/armeabi-v7a, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_8_apk.apk!/lib/armeabi-v7a, /data/app/com.YourCompany.tanke2-yV2XC1zV3r-5-6rmFbrMUQ==/split_lib_slice_9_apk.apk!/lib/armeabi-v7a, /system/lib, /system/vendor/lib]]] couldn't find "libUE4.so"
                                                                          at java.lang.Runtime.loadLibrary0(Runtime.java:1011)
                                                                          at java.lang.System.loadLibrary(System.java:1657)
                                                                          at com.epicgames.ue4.GameActivity.<clinit>(GameActivity.java:3175)
                                                                          at java.lang.Class.newInstance(Native Method)
                                                                          at android.app.Instrumentation.newActivity(Instrumentation.java:1174)
                                                                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2727)
                                                                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2911)
                                                                          at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1608)
                                                                          at android.os.Handler.dispatchMessage(Handler.java:105)
                                                                          at android.os.Looper.loop(Looper.java:164)
                                                                          at android.app.ActivityThread.main(ActivityThread.java:6665)
                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                          at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)



这问题怎么搞打包已经成功但是会闪退




欢迎光临 引擎世界丨EngineWorld.CN (https://www.engineworld.cn/) Powered by Discuz! X3.5