2015-12-29 107 views
2
運行Android活動

與建設項目長期鬥爭之後,我被困在推出Android的活動拋出java.lang.ClassNotFoundException而團結

logcat的輸出:

I/Unity (20479): Welcome on Android border 
I/Unity (20479): AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/testapp/androidplugin/app/SplashScreen; 
I/Unity (20479): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/testapp/androidplugin/app/SplashScreen; 
I/Unity (20479):  at com.testapp.androidplugin.app.UnityBinder.foo(UnityBinder.java:16) 
I/Unity (20479):  at com.unity3d.player.UnityPlayer.nativeRender(Native Method) 
I/Unity (20479):  at com.unity3d.player.UnityPlayer.a(Unknown Source) 
I/Unity (20479):  at com.unity3d.player.UnityPlayer$b.run(Unknown Source) 
I/Unity (20479): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.testapp.androidplugin.app.SplashScreen" on path: DexPathList[[zip file "/mnt/asec/com.testapp.androidplugin.app-2/base.apk"],nativeLibraryDirectories=[/mnt/asec/com.testapp.androidplugin.app-2/lib/arm, /system/lib, /vendor/lib, sy 
stem/vendor/lib, system/vendor/lib/egl, system/lib/hw]] 
I/Unity (20479):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
I/Unity (20479):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
I/Unity (20479):  at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 

第一行是從Java類,所以事情發生...

UnityBinder.class

public static void foo(Activity activity) { 
    Log.i("Unity", "Welcome on Android border"); 
    Intent myIntent = new Intent(activity, SplashScreen.class); 
    activity.startActivity(myIntent); 
} 

兩個類在同一個包,我的事件試圖與提供完整路徑包,但同樣的結果

if (GUI.Button(new Rect(200, 200, 400, 400), "Start")) 
    { 
     var androidJC = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
    var jo = androidJC.GetStatic<AndroidJavaObject>("currentActivity"); 
    var jc = new AndroidJavaClass("com.testapp.androidplugin.app.UnityBinder"); 
    jc.CallStatic("foo", jo); 
    } 

閃屏是由AppCompatActivity

我使用的Java反編譯看的文件結構,SplashScreen類存在擴展有 在插件 - > Android目錄我有appcompat-v7-23.1.1.aar,design-23.1.1.aar,類(這是從我的解包* .aar的Android模塊),休息和資產文件夾。

我使用統一5.3

+0

你有沒有想出解決辦法嗎? – jclova

+0

@jclova你有沒有想出解決方案? –

+0

嗨Jakub,你有沒有想出解決這個問題的辦法? –

回答

0

我已經設法做到了。我將appcompat-v7-25.3.1.aar & support-v4-25.3.1.aar複製到了我的資源文件夾,但它不起作用。然後我切換到Unity中的Gradle構建系統,並在依賴關係下添加了以下幾行。

compile 'com.android.support:appcompat-v7:25.3.1' 
compile 'com.android.support:support-v4:25.3.1' 

應該喜歡這個

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
compile 'com.android.support:appcompat-v7:25.3.1' 
compile 'com.android.support:support-v4:25.3.1' 
**DEPS**} 
相關問題