我是关于 android 编程和 android studio 的新手。我为我的项目研究了人行横道嵌入 API,并尝试将其嵌入到 android studio 中。但我无法成功。即使我不确切知道如何嵌入具有 gradle 文件的 API。
也许gradle系统有问题?简而言之,如何逐步将 crosswalk-webview 嵌入到我的项目中?非常感谢你。
我是关于 android 编程和 android studio 的新手。我为我的项目研究了人行横道嵌入 API,并尝试将其嵌入到 android studio 中。但我无法成功。即使我不确切知道如何嵌入具有 gradle 文件的 API。
也许gradle系统有问题?简而言之,如何逐步将 crosswalk-webview 嵌入到我的项目中?非常感谢你。
以下:https ://diego.org/2015/01/07/embedding-crosswalk-in-android-studio/
打开 AndroidStudio 到 app 文件夹编辑 build.gradle 中的项目视图:
repositories {
maven {
url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2'}}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'org.xwalk:xwalk_core_library:10.39.235.15'}
同步项目。
在布局 xml 中添加此视图。
<org.xwalk.core.XWalkView
android:id="@+id/xwalkWebView"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000000"
/>
在活动或片段中:
import org.xwalk.core.XWalkPreferences;
import org.xwalk.core.XWalkView;
在 onCreate 中:
XWalkView xWalkWebView=(XWalkView)findViewById(R.id.xwalkWebView);
xWalkWebView.clearCache(true);
xWalkWebView.load("http://...", null);
// turn on debugging
XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
在使用开箱即用的 WebView 失败后,我在 android 4.3 和 4.4 的 XWalkView 中成功使用了 WebRTC。我认为 android 5 Lollipop 可以与最新的 chromium 相提并论。
要嵌入新项目或使用 Android Studio 3 构建,您必须更改以下四个文件
这是一个示例app.gradle
文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "online.saai.crosswalkandroid3"
minSdkVersion 17
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
maven {
url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2/'
}
}
configurations.all {
resolutionStrategy {
force 'com.android.support:support-v4:27.1.0'
}
}
dependencies {
compile 'org.xwalk:xwalk_core_library:23.53.589.4'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
要考虑的事情,
23.53.589.4
,min sdk 版本应该 >= 16 这里我使用了 17,即minSdkVersion 17
repositories { ... }
和编译依赖compile 'org.xwalk:xwalk_core_library:23.53.589.4'
项以下载最新的人行横道configurations.all { ... }
完成此操作后,将您的.xml
文件 ( activity_main.xml
) 替换为以下内容,以便它可以使用人行横道视图
<?xml version="1.0" encoding="utf-8"?>
<org.xwalk.core.XWalkView android:id="@+id/activity_main"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</org.xwalk.core.XWalkView>
现在MainActivity.java
public class MainActivity extends Activity {
private XWalkView mXWalkView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mXWalkView = (XWalkView) findViewById(R.id.activity_main);
mXWalkView.load("http://crosswalk-project.org/", null);
}
}
最后允许您的应用程序使用您在应用程序中需要的互联网和其他权限,进入“AndroidManifest.xml”并添加此权限。这是一个示例
<manifest ... />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
...
<application ... />
感谢这只橡皮鸭——它真的帮助了我!
注意:如果您要添加人行横道来执行 webRTC,则需要将这些添加到您的清单中,否则传出的视频/音频将无法正常工作(也许您不需要全部,但它对我有用!);
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
这是另一个关于如何让 Crosswalk 进入 Android Studio 的教程,使用这种方法,您可以选择您想要定位的处理器架构,从而将 APK 文件大小减少到大约 20 mb,而不是使用上面的大约 40 mb方法。
http://www.zhuatang.com/en/as-tips-3.jsp
在教程中创建资源文件夹时,请务必使用:File->New->Folder->Res Folder
在教程的最后还有一个 Github 链接,指向使用教程中描述的方法创建的功能项目: https ://github.com/zhsoft88/TestCrosswalkEmbed2
这也是通过 html5 加载图像所必需的,如此处所示
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (mXwalkView != null) {
mXwalkView.onActivityResult(requestCode, resultCode, data);
}
}