2016-11-25 31 views
11

我正在開發一個Android庫模塊,它必須包含Crosswalk Webview。我使用Github Sonatype創建了庫(https://github.com/sonatype/)。沒有Crosswalk Webview,它工作正常。我嘗試了以下3種方法來包含Crosswalk。如何在我自己的android庫模塊中添加人行橫道webview?

方法1:

  • 添加人行橫道網頁視圖圖書館在我的庫項目的應用程序gradle這個

  • 錯誤:(編譯錯誤)

  • 無法解析:org.xwalk: xwalk_core_library:18.48.477.13

方法2:在我的圖書館項目

  • 參考鏈接

    方法3:

    注:我試過兩個罐子(普通,共享模式)文件

  • +0

    方法#2應該工作。我已經下載了'crosswalk-webview-18.48.477.13-arm' zip文件,它包含一個完整的AS模塊。它包含一個jar,一些資源和一堆依賴於CPU的.so本機庫(因此,如果要將它集成到您​​的庫中,則只會遇到ARM或x86二進制文件,否則您將不得不爲每個架構創建一個lib的版本TL; DR:不要做這個人,通過gradle導入 –

    +0

    在gradle方法中,我無法構建我的示例項目 – RDY

    +0

    我剛剛意識到在官方頁面中沒有任何gradle教程顯然它現在更加複雜的是添加XWalk並使用npm工具完成。 –

    回答

    6

    我創建了一個從webview到XWalkView的新應用程序,用於呈現three.js stl加載器演示,這不受webview支持,無論WebGlRenderer還是CanvasRenderer。 下面是該過程如何使用人行橫道模塊:

    步驟1:文件 - >新建 - >導入模塊

    File->New->Import Module

    步驟2中選擇的模塊和重命名如果需要

    select the module and rename if you need

    第3步選擇的所有選項

    choose all the option

    這裏機器人工作室可能會要求您更新,更新

    enter image description here

    第4步處理模塊依賴

    process the module dependency enter image description here enter image description here

    在此之後,搖籃建設自動運行 在這裏我們有finis在人行橫道入口處。

    步驟5使用XWalkView

    添加此權限的到的AndroidManifest.xml

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    

    附加硬件加速到的AndroidManifest.xml

    的應用節點
    android:hardwareAccelerated="true" 
    

    此添加到佈局文件

    <org.xwalk.core.XWalkView 
    android:id="@+id/xWalkView" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    </org.xwalk.core.XWalkView> 
    

    它添加到活動

    XWalkView mXWalkView = (XWalkView) findViewById(R.id.xWalkView); 
    mXWalkView.load("http://192.168.1.42/test", null); 
    

    這裏我們完成 這是我使用的WebView和XWalkView渲染three.js所STL裝載機的結果。

    的WebView不支持

    webview not support

    XWalkView支持以及

    XWalkView supports well

    哈哈它的工作原理。


    遵循的是另一種舊的實現,您也可以參考這個好[發佈]或doc11

    這裏是source code

    下載合適的人行橫道的Android的WebView封裝,解包它https://crosswalk-project.org/documentation/downloads.html

    從人行橫道庫到應用程序/庫複製xwalk_core_library_java.jar /在Android Studio項目,並寫在文件上單擊,選擇「添加料作爲圖書館「在人行橫道庫

    複製其他內容的應用程序/ src目錄/主/ jniLibs/

    做一個Android資源目錄RES2,並在人行橫道複製文件水庫DIR這個目錄。

    一下添加到AndroidMenifest.xml

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
        <uses-permission android:name="android.permission.CAMERA" /> 
        <uses-permission android:name="android.permission.INTERNET" /> 
        <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
        <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
        <uses-permission android:name="android.permission.WAKE_LOCK" /> 
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    
    
    and add android:hardwareAccelerated="true" to application node.to use hardware acceleration which is needed by crosswalk webview 
    

    添加此佈局

    <org.xwalk.core.XWalkView android:id="@+id/webview" 
         xmlns:android="http://schemas.android.com/apk/res/android" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         > 
        </org.xwalk.core.XWalkView> 
    

    這一點,如果你想調試三層架構的遠程添加此添加到活動

    XWalkView mXWalkView = (XWalkView) findViewById(R.id.webview); 
        mXWalkView.load("http://xxxxxx.com", null); 
    

    XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true); 
    
    +0

    參考過程 – RDY

    +1

    @RDY我今天創建一個新的,我刷新我的答案。 –

    +1

    https://github.com/punyfeir/TestCrosswalkEmbed2這個鏈接對我有幫助謝謝@Kris – RDY

    相關問題