UE4导出安卓文件用android studio进行二次开发

[复制链接]
孤独小码农 | 2018-5-15 22:33:52 | 显示全部楼层
mknmknmk 发表于 2018-5-15 15:01
修改 gameactivity 源文件不可取 ,只有修改_APL.xml 添加你的import   方法 属性 给gameactivity ,里面还 ...

大神太复杂了,有没有转换好的dame,拿我对比研究下,再次说声谢谢
回复 支持 反对

使用道具 举报

mknmknmk | 2018-5-16 08:54:49 | 显示全部楼层
本帖最后由 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:01 | 显示全部楼层
mknmknmk 发表于 2018-5-16 08:54
4.18.3 一个安卓的插件
https://pan.baidu.com/s/1FhQf9zs-1DZOkm3vcKP1Yg

我都不好意思问了,不好意思我是新手,那安卓插件怎么用,
回复 支持 反对

使用道具 举报

mknmknmk | 2018-5-17 08:57:42 | 显示全部楼层
        以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:55 | 显示全部楼层
本帖最后由 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:26 | 显示全部楼层
mknmknmk 发表于 2018-5-17 09:58
AndroidPermission_APL.xml 为例
java 文件的拷贝

我大概想明白了,这么做的目的是为了,在新建的安卓项目里启动c++引擎方法,对吧!!
回复 支持 反对

使用道具 举报

mknmknmk | 2018-5-19 10:16:43 | 显示全部楼层
在安卓项目里不行,在java文件里写好, c++ 对应方法也写好, 编译时 java文件拷贝。 调用java 方法 , c++ 方法执行。
回复 支持 反对

使用道具 举报

孤独小码农 | 2018-5-25 20:42:03 | 显示全部楼层
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:30 | 显示全部楼层
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)



这问题怎么搞打包已经成功但是会闪退
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则