2015-06-29 87 views
0

我想在JavaFx項目中使用Android特定的代碼。我在JavaFX上編寫了一個小型遊戲,當我使用JavaFX-Ports時,我可以在Android Handy上運行這個遊戲。現在我想展示一些廣告,爲此我必須使用FXActivity作爲上下文。Javafx與Android - Api

我進口FXActivity

import javafxports.android.FXActivity; 

然後我得到這個錯誤:

D:\Martin\Programmieren\fx to android\Trio\src\main\java\net \hagh\Main.java:18: 
error: package javafxports.android does not exist 
import javafxports.android.FXActivity; 
        ^
1 error 
:compileJava FAILED 

現在我加入了jfxdvk.jar和的android.jar(從Android的SDK)對我的依賴,現在我的build.gradle文件看起來像:

buildscript { 
    repositories { 
     jcenter() 
    } 

    dependencies { 
     classpath 'org.javafxports:jfxmobile-plugin:1.0.0-b9' 
    } 
} 

apply plugin: 'org.javafxports.jfxmobile' 

mainClassName = 'net.hagh.Main' 

dependencies { 
    compile files("D:/Programmieren/fx to android/dalvik-sdk/rt/lib/ext/jfxdvk.jar", "C:/Users/Martin/AppData/Local/Android/android-sdk/platforms/android-22/android.jar") 
} 

repositories { 
    jcenter() 
} 

相同的錯誤之前...

我錯了什麼,我該怎麼做對不對?我搜索了很長時間的解決方案,但有很多不同的教程,我認爲其中大部分都已過時。 有人可以給我一個正確的build.gradle文件嗎?

我發現這個例子:https://bitbucket.org/javafxports/samples/src/56e2050ef9e1/HelloPlatform/?at=default,我認爲這是正確的做法。但我不明白如何使用FXActivity這樣

編輯:我開了一家新的question這個

膠子插件的NetBeans和HelloPlatform例如幫助我,但現在我想使用谷歌播放 - 服務顯示增加。 在將此添加到我的build.gradle文件:

repositories { 
    def androidHome = System.getenv("ANDROID_HOME") 
    maven { url "$androidHome/extras/android/m2repository/" } 
    maven { url "$androidHome/extras/google/m2repository/"} 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.google.android.gms:play-services-ads:7.5.0' 
} 

在我的AndroidManifest.xml我說:

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 

而且他們讓我的下一個錯誤,當我嘗試生成APK文件

:processAndroidResources UP-TO-DATE 
C:\Users\Martin\Documents\NetBeansProjects\Trio\build\javafxports\tmp\android\AndroidManifest.xml:27: error: Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version'). 

:processAndroidAndroidResources FAILED 

我搜索了一下,發現我應該包含google-play-services_lib,但我不知道如何。這是我第一次使用gradle

回答

1

對於初學者,您不需要添加這些依賴關係:jfxmobile插件已經爲您做好了準備。

您可以查看NetBeans的Gloun plugin,以使用JavaFXPorts創建一個新的JavaFX項目。

現在,在這個新項目中,如果您想添加一些Android代碼,您必須將其添加到Android/Java包中。

正如您已經指出的,開始的一種方法是遵循HelloPlatform。它包括一個PlatformService來根據您正在運行的平臺爲您加載課程。由此,如果您使用的是Android,則可以加載AndroidPlatformProvider。因此,無論平臺如何,您都必須提供您想從主類調用的方法,並在每個平臺上實現它們(至少在虛擬內容中)。

你也可以看看這個question,因爲它提供了一個完整的android代碼解決方案。

+0

它適用於NetBeans的Gluon插件。現在我想使用Google-Play-Services,並且遇到了一些問題。我更新了我的問題 – Martin

+0

好,你已經解決了第一個問題。現在處理Google Play服務是一個不同的話題......也許應該用另一個問題來提問。您是否使用Android SDK管理器安裝了Google Play服務和Google Repository?請注意,在這個版本庫中,你不會找到'jar'文件,而是'aar'文件。 –

+0

是的,我在Android SDK Manager中安裝了所有東西。我會爲此提出一個新問題。謝謝你的幫助 :) – Martin