2017-06-27 2 views
0

Ich habe eine JAR-Datei in den libs-Ordner meines Projekts kopiert. Normalerweise zeigt es mir alle darin enthaltenen Dateien. Für diese eine JAR-Datei wird nicht die eingebettete Klassendatei angezeigt, sondern eine Manifestdatei.Android Studio 2.3.3 lädt keine Klassendatei von JAR

Nehmen wir an, das Glas ist custom-unity-activity.jar und die Verzeichnisstruktur ist com \ custom \ activity \ custom-unity-activity.class. Soweit Android Studio bekommt ist "com.custom" und geht dann nicht weiter. Der Compiler kann auch die in der Klassendatei definierten Symbole nicht auflösen, so dass er definitiv nicht eingelesen wird.

Ich weiß, dass diese JAR-Datei gültig ist, weil sie erfolgreich in einer anderen Build-Umgebung verwendet wurde.

Project screenshot

Antwort

0

Es ist wirklich schwer Einheit des Projekts in eine bestehende Android-Projekt zu importieren. Die Lösung ist stattdessen umgekehrt.

Erstellen Sie das Android Studio-Projekt als JAR- oder .ARR-Plugin und platzieren Sie es dann in Ihrem Unity-Projekt unter: <ProjectName>Assets\Plugins\Android.

Wenn Sie Ihre Android Studio-Projektaktivität laden möchten, müssen Sie die AndroidManifest.xml ändern, damit Unity benachrichtigt wird, und dann folgende Adresse eingeben: <ProjectName>Assets\Plugins\Android.

Unten ist, wie das XML aussehen soll. Es gibt den Namen der Aktivität an, die geladen werden soll, und teilt Unity mit, dass Sie Eingabeereignisse aus Ihrem Android Studio-Projekt verwenden können. Andernfalls stehlen Unity diese Ereignisse. Im folgenden Manifest wird davon ausgegangen, dass der Android Studio-Aktivitätsname "MainActivity" lautet.

<?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> 
+0

Ich schätze den Aufwand! Ich kenne die Ursache dieses Problems nicht, aber als Workaround habe ich festgestellt, dass mit IntelliJ (2017.1.4) anstelle von Android Studio die JAR-Datei geladen und wie erwartet verwendet werden konnte. Nicht ideal, aber es bringt mich zumindest zum Arbeiten. http://imgur.com/a/OBnWE – CasualCoder

+0

Sie müssen Android Studio verwenden. Das ist die Zukunft für die Android-Entwicklung. Sogar Eclipse ist tot für Androiden. Wie für IntelliJ (2017.1.4), wer weiß, wie lange es unterstützt wird. – Programmer

Verwandte Themen