解决思路:
Unity2019.4.4与AndroidStudio3.5.2交互_LM514104的博客-CSDN博客
需将C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player下的UnityPlayerActivity直接拖入安卓工程MainActivity(继承于UnityPlayerActivity)的目录下。
之后打包出的arr只需获取里面的AndroidManifest.xml和classes.jar
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.milk.unityandroidtalktest" >
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="31" />
<application>
<activity
android:name="com.milk.unityandroidtalktest.MainActivity"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="unityplayer.UnityActivity"
android:value="true" />
</activity>
</application>
</manifest>
注意类似android:theme="@style/Theme.UnityAndroidTalkTest" 这种@style 或 @string 啥的 全部都要删除掉,不然会一直打包提示报错这些找不到了。
classes.jar里会有
需要删除BuildConfig.class(不然会报错存在相同类型冲突)
注意:凡是使用了这种方式自己去带入UnityPlayerActivity.class到自己的classes.jar包时,就意味着原本那些不会出现这个问题的Unity项目可能就会报错找不到 UnityPlayerActivity.class,因为你删除了C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player下的UnityPlayerActivity.class,所以当发现其他项目打包有问题就说明要还原回去。我这边是直接把整个com\unity3d\player目录全部删了。(一般这个问题都会以闪退 打不开apk呈现出来,要仔细观察最顶端的Log日志才发现的。很蛋疼)