我已将jar文件复制到项目的libs文件夹中。通常它会显示其中包含的所有文件。对于这个JAR文件,它不会显示嵌入在其中的类文件,但会显示清单文件。
假设jar是custom-unity-activity.jar,目录结构是com \ custom \ activity \ custom-unity-activity.class。至于Android Studio得到的是“com.custom”,然后不再进一步。编译器也无法解析类文件中定义的符号,因此它肯定不会读取它。
我知道这个jar文件是有效的,因为它已在不同的构建环境下成功使用。
答案 0 :(得分:0)
将Unity的项目导入现有的Android项目真的很难。解决方案是以相反的方式做到这一点。
为jar或.arr插件构建Android Studio项目,然后将其放在Unity项目中:<ProjectName>Assets\Plugins\Android
。
如果您要加载Android Studio项目活动,则必须修改AndroidManifest.xml
以让Unity知道,然后将其放在:<ProjectName>Assets\Plugins\Android
。
下面是XML应该是什么样子。它将指定要加载的活动名称,并且还将告诉Unity允许您使用Android Studio项目中的输入事件,否则Unity将窃取这些事件。下面的清单假设Android Studio活动名称是&#34; MainActivity&#34;。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.casualcoder.plugin" android:installLocation="auto">
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="19" />
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
<application android:icon="@drawable/app_icon" android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<meta-data android:name="android.app.lib_name" android:value="unity" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.unity3d.player.UnityPlayerNativeActivity"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
android:screenOrientation="landscape">
<meta-data android:name="android.app.lib_name" android:value="unity" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
</activity>
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
android:screenOrientation="landscape">
<meta-data android:name="android.app.lib_name" android:value="unity" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
</activity>
</application>
</manifest>