Proof of concept Android WebView implementation based on Chromium code

Related tags

UI/UX chromeview
Overview

Deprecation Notice

This project is un-maintained. The recommended alternative is the Crosswalk Project.

I did not have the time to keep the project up to date. In the mean time, the fine folks at Intel did a great job of embedding Chromium using the Content Shell API, which is what Chromium's developers intended. Therefore, I cannot justify spending any time on this. The original README and the code are here for historical purposes.

I think that the Crosswalk Project will meet all your embedding needs, and I'm contributing to it.

ChromeView

ChormeView works like Android's WebView, but is backed by the latest Chromium code.

Why ChromeView

ChromeView lets you ship your own Chromium code, instead of using whatever version comes with your user's Android image. This gives your application early access to the newest features in Chromium, and removes the variability due to different WebView implementations in different versions of Android.

Setting Up

This section explains how to set up your Android project to use ChromeView.

Get the Code

Check out the repository in your Eclipse workspace, and make your project use ChromeView as a library. In Eclipse, right-click your project directory, select Properties, choose the Android category, and click on the Add button in the Library section.

Copy Data

Copy assets/webviewchromium.pak to your project's assets directory. Star this bug if you agree that this is annoying.

In your Application subclass, call ChromeView.initialize and pass it the application's context. For example,

Initialize Chromium

import us.costan.chrome.ChromeView;
import android.app.Application;

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ChromeView.initialize(this);
    }
}

Now you can use ChromeView in the same contexts as you would use WebView.

Star some bugs

If you use this project and want to help move it along, please star the following bugs.

Usage

To access ChromeView in the graphical layout editor, go to the Palette, expand the Custom and Library Views section, and click the Refresh button.

ChromeView supports most of the WebView methods. For example,

ChromeView chromeView = (ChromeView)findViewById(R.id.gameUiView);
chromeView.getSettings().setJavaScriptEnabled(true);
chromeView.loadUrl("http://www.google.com");

JavaScript

ChromeView's addJavaScriptInterface exposes public methods that are annotated with @ChromeJavascriptInterface. This is because WebView's @JavascriptInterface is only available on Android 4.2 and above, but ChromeView targets 4.0 and 4.1 as well.

import us.costan.chrome.ChromeJavascriptInterface;

public class JsBindings {
    @ChromeJavascriptInterface
    public String getHello() {
        return "Hello world";
    }
}

chromeView.addJavascriptInterface(new JsBindings(), "AndroidBindings");

Cookies

ChromeCookieManager is ChromeView's equivalent of CookieManager.

ChromeCookieManager.getInstance().getCookie("https://www.google.com");

Faster Development

To speed up the application launch on real devices, remove the libs/x86 directory. When developing on Atom devices, remove the ARM directory instead.

Remember to git checkout -- . and get the library back before building a release APK.

Internet Access

If your application manifest doesn't specify the INTERNET permission, the Chromium code behind ChromeView silentely blocks all network requests. This is mentioned here because it can be hard to debug.

Building

The bulk of this project is Chromium source code and build products. With the appropriate infrastructure, the Chromium bits can be easily updated.

crbuild/vm-build.md contains step-by-step instructions for setting up a VM and building the Chromium for Android components used by ChromeView.

Once Chromium has been successfully built, running crbuild/update.sh will copy the relevant bits from the build VM into the ChromeView source tree.

Issues

Attempting to scroll the view (by swiping a finger across the screen) does not update the displayed image. However, internally, the view is scrolled. This can be seen by displaying a stack of buttons and trying to click on the topmost one. This issue makes ChromeView mostly unusable in production.

The core issue is that the integration is done via AwContent in the android_webview directory of the Chromium source tree, which is experimental and not intended for embedding use. The "right" way of doing this is to embed a ContentView from the content directory, or a Shell in content/shell. Unfortunately, these components' APIs don't match WebView nearly as well as AwContent, and they're much harder to integrate. Pull requests or a fork would be welcome.

This repository is rebased often, because the large files in lib/ would result in a huge repository if new commits were created for each build. The large files are Chromium build products.

Contributing

Please don't hesitate to send your Pull Requests!

Please don't send pull requests including the binary assets or code extracted from Android (assets/, libs/, src/com/googlecode/ and src/org/android). If your Pull Request requires updated Android bits, mention that in the PR description, and I will rebuild the Android bits.

Copyright and License

The directories below contain code from the The Chromium Project, which is subject to the copyright and license on the project site.

  • assets/
  • libs/
  • src/com/googlecode
  • src/org/chromium

Some of the source code in src/us/costan/chrome has been derived from the Android source code, and is therefore covered by the Android project licenses.

The rest of the code is Copyright 2013, Victor Costan, and available under the MIT license.

Comments
  • network adapters

    network adapters

    How is it possible to set both adapters to virtio-net one of which is NAT and the other is Host-only Adapter o_O? Taken from https://github.com/pwnall/chromeview/blob/master/crbuild/vm-build.md

    opened by 127 5
  • Failed SharedMemory::Map

    Failed SharedMemory::Map

    See https://code.google.com/p/chromium/issues/detail?id=224646

    This affects website that has large html. Tried to recompile from the latest tarball following the instructions outlined in crbuild/vm-build.md but ended up with a library that exceed 1gig in size. Tried several build but still unable to have libwebviewchromium.so at just 28mb.

    How is this done ? Ninja is already specified with out/Release which means it must be a release build. Is there another step to strip out unused functions ?

    opened by tankh64 5
  • Crosswalk has dead. I hope you could reboot this repo.

    Crosswalk has dead. I hope you could reboot this repo.

    The Crosswalk team said : https://lists.crosswalk-project.org/pipermail/crosswalk-help/2017-February/002411.html

    So I hope you could reboot this repo and make it could used in Cordova .

    Thanks

    opened by finscn 4
  • ChromeView very very slow, and I can't even scroll.

    ChromeView very very slow, and I can't even scroll.

    V8 Engine works properly (WebSocket works)

    ChromeView#onTouchEvent is called but I can't scroll.

    @Override
    public boolean onTouchEvent(final MotionEvent event) {
        final boolean h = super.onTouchEvent(event);
        Util.log(h + "");
        return h;
    }
    

    This print true on down and move, but false on up.

    opened by ghost 3
  • No implementation found?

    No implementation found?

    I'm trying to run chromeview and when I call ChromeView.initialize an UnsatsifiedLinkError exception is thrown.

    12-31 16:16:28.050: D/dalvikvm(4910): Late-enabling CheckJNI
    12-31 16:16:28.155: I/LibraryLoader(4910): loading: webviewchromium
    12-31 16:16:28.155: D/dalvikvm(4910): Trying to load lib /data/app-lib/com.example.chromeviewtest-1/libwebviewchromium.so 0x41c443c0
    12-31 16:16:28.155: D/dalvikvm(4910): **Added shared lib /data/app-lib/com.example.chromeviewtest-1/libwebviewchromium.so 0x41c443c0
    12-31 16:16:28.155: I/LibraryLoader(4910): loaded: webviewchromium
    12-31 16:16:28.155: W/dalvikvm(4910): No implementation found for native Lorg/chromium/content/app/LibraryLoader;.nativeLibraryLoaded:([Ljava/lang/String;)I
    12-31 16:16:28.155: D/AndroidRuntime(4910): Shutting down VM
    12-31 16:16:28.155: W/dalvikvm(4910): threadid=1: thread exiting with uncaught exception (group=0x41995c50)
    12-31 16:16:28.160: E/AndroidRuntime(4910): FATAL EXCEPTION: main
    12-31 16:16:28.160: E/AndroidRuntime(4910): Process: com.example.chromeviewtest, PID: 4910
    12-31 16:16:28.160: E/AndroidRuntime(4910): java.lang.UnsatisfiedLinkError: Native method not found: org.chromium.content.app.LibraryLoader.nativeLibraryLoaded:([Ljava/lang/String;)I
    12-31 16:16:28.160: E/AndroidRuntime(4910):     at org.chromium.content.app.LibraryLoader.nativeLibraryLoaded(Native Method)
    12-31 16:16:28.160: E/AndroidRuntime(4910):     at org.chromium.content.app.LibraryLoader.initializeAlreadyLocked(LibraryLoader.java:122)
    12-31 16:16:28.160: E/AndroidRuntime(4910):     at org.chromium.content.app.LibraryLoader.ensureInitialized(LibraryLoader.java:63)
    12-31 16:16:28.160: E/AndroidRuntime(4910):     at org.chromium.android_webview.AwBrowserProcess$1.run(AwBrowserProcess.java:50)
    12-31 16:16:28.160: E/AndroidRuntime(4910):     at org.chromium.base.ThreadUtils.runOnUiThreadBlocking(ThreadUtils.java:28)
    12-31 16:16:28.160: E/AndroidRuntime(4910):     at org.chromium.android_webview.AwBrowserProcess.start(AwBrowserProcess.java:46)
    12-31 16:16:28.160: E/AndroidRuntime(4910):     at us.costan.chrome.impl.ChromeInitializer.initialize(ChromeInitializer.java:49)
    12-31 16:16:28.160: E/AndroidRuntime(4910):     at us.costan.chrome.ChromeView.initialize(ChromeView.java:851)
    12-31 16:16:28.160: E/AndroidRuntime(4910):     at com.example.chromeviewtest.MyApplication.onCreate(MyApplication.java:10)
    12-31 16:16:28.160: E/AndroidRuntime(4910):     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
    12-31 16:16:28.160: E/AndroidRuntime(4910):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4396)
    

    These are the steps I did:

    • Add chromeview as an eclipse project
    • Created a new android app, chromeviewtest
    • Added chromeview as a library
    • Copied the pak file to assets/
    • Added an Application class like in the README

    What is the problem? How can I fix it?

    opened by alongubkin 2
  • Javascript not working

    Javascript not working

    Hey guys,

    thanks for this amazing project.

    I have a javascript slidingmenu which is not working. If i slide there is no animation and a white screen overlaps my content.

    Any ideas why it is not working ? I cant find the error by debugging.

    opened by cbsol 2
  • [FATAL:jni_android.cc(139)] Check failed:

    [FATAL:jni_android.cc(139)] Check failed:

    I'm getting run time error

    [FATAL:jni_android.cc(139)] Check failed: !ClearException(env) && clazz. Failed to find class org/chromium/ui/gfx/SurfaceTextureListener

    opened by chathudan 2
  • Can this support muti-process?

    Can this support muti-process?

    Can this project support muti-process? If it could ,what can I do? When I modified in AwBrowserProcess.java as follows: public static void start(final Context context) { // We must post to the UI thread to cover the case that the user // has invoked Chromium startup by using the (thread-safe) // CookieManager rather than creating a WebView. ThreadUtils.runOnUiThreadBlocking(new Runnable() { @Override public void run() { try { LibraryLoader.ensureInitialized(); AndroidBrowserProcess.init(context, AndroidBrowserProcess.MAX_RENDERERS_AUTOMATIC); } catch (ProcessInitException e) { throw new RuntimeException("Cannot initialize WebView", e); } } }); The errors below: 07-17 14:55:54.901: A/chromium(10860): [FATAL:aw_content_browser_client.cc(117)] Check failed: content::RenderProcessHost::run_renderer_in_process(). 07-17 14:55:54.901: A/libc(10860): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)

    opened by dzhj11 2
  • JDK 7?

    JDK 7?

    Hi @pwnall -- thanks a lot for contributing this project. I added a couple pull requests for issues with the vm-setup.sh script that I ran into.

    Just a quick question -- do you (or anyone) happen to know if the Chromium build will work with the latest JDK 7u* ? -- as opposed to JDK 6u*?

    opened by davisford 2
  • Using Crosswalk or this?

    Using Crosswalk or this?

    The docu says that this is deprecated and also suggests crosswalk. But this repo seems to be still very active. So I wonder if this should still be used? Because I tried for about 3 full days to get Crosswalk working, but there are so many issues where I googled like 24/7 and trying to solve those errors without success after completely removing my old WebView from my app. Also you can't even open issues in the crosswalk project on GitHub, so there's basically no support (only found a mailing list). So what's the downside of using this library for WebView?

    opened by AlexioVay 1
  • ChromeAwContentsClientProxy::shouldInterceptRequest

    ChromeAwContentsClientProxy::shouldInterceptRequest

    chromeview-master/src/us/costan/chrome/impl/ChromeAwContentsClientProxy.java

    requires a check on response object

    public InterceptedRequestData shouldInterceptRequest(String url) { if (viewClient_ != null) { WebResourceResponse response = viewClient_.shouldInterceptRequest(view_, url); if (response != null) return new InterceptedRequestData(response.getMimeType(), response.getEncoding(), response.getData()); else return null; } else { return null; } }

    opened by tankh64 1
  • CookieSyncManager not working

    CookieSyncManager not working

    I want to sharing session between httpclient and webview. I'm already used to 'CookieSyncManager' in webview. and, it's work perfectly.

    But, in this case, 'CookieSyncManager' is not working. Of course, I changed to ChromeCookieManager for setting cookie on that browser. maybe, CookieSyncManager allows of only maintaining session in webview. I'm struggling to solve this problem. so, how can I do that?

    opened by devkhpark 0
  • Unable to load ChromeView on  device and Emulator as well.

    Unable to load ChromeView on device and Emulator as well.

    I have download you library code and add library in my project and when i start app it give me below crash log Does you known how to resolved this issue ?

    Below is my Crash logs:

    04-08 15:39:10.342: E/AndroidRuntime(14052): FATAL EXCEPTION: main 04-08 15:39:10.342: E/AndroidRuntime(14052): Process: com.chromium.webviewdemo, PID: 14052 04-08 15:39:10.342: E/AndroidRuntime(14052): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.chromium.webviewdemo/com.chromium.webviewdemo.BrowserActivity}: android.view.InflateException: Binary XML file line #17: Error inflating class us.costan.chrome.ChromeView 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.ActivityThread.access$800(ActivityThread.java:135) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.os.Handler.dispatchMessage(Handler.java:102) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.os.Looper.loop(Looper.java:136) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.ActivityThread.main(ActivityThread.java:5017) 04-08 15:39:10.342: E/AndroidRuntime(14052): at java.lang.reflect.Method.invokeNative(Native Method) 04-08 15:39:10.342: E/AndroidRuntime(14052): at java.lang.reflect.Method.invoke(Method.java:515) 04-08 15:39:10.342: E/AndroidRuntime(14052): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 04-08 15:39:10.342: E/AndroidRuntime(14052): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 04-08 15:39:10.342: E/AndroidRuntime(14052): at dalvik.system.NativeStart.main(Native Method) 04-08 15:39:10.342: E/AndroidRuntime(14052): Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class us.costan.chrome.ChromeView 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.view.LayoutInflater.createView(LayoutInflater.java:620) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 04-08 15:39:10.342: E/AndroidRuntime(14052): at com.chromium.webviewdemo.BrowserActivity$PlaceholderFragment.onCreateView(BrowserActivity.java:64) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.Fragment.performCreateView(Fragment.java:1700) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.BackStackRecord.run(BackStackRecord.java:684) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.Activity.performStart(Activity.java:5240) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2168) 04-08 15:39:10.342: E/AndroidRuntime(14052): ... 11 more 04-08 15:39:10.342: E/AndroidRuntime(14052): Caused by: java.lang.reflect.InvocationTargetException 04-08 15:39:10.342: E/AndroidRuntime(14052): at java.lang.reflect.Constructor.constructNative(Native Method) 04-08 15:39:10.342: E/AndroidRuntime(14052): at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 04-08 15:39:10.342: E/AndroidRuntime(14052): at android.view.LayoutInflater.createView(LayoutInflater.java:594) 04-08 15:39:10.342: E/AndroidRuntime(14052): ... 23 more 04-08 15:39:10.342: E/AndroidRuntime(14052): Caused by: java.lang.UnsatisfiedLinkError: Native method not found: org.chromium.android_webview.AwContents.nativeInit:(Lorg/chromium/android_webview/AwWebContentsDelegate;Lorg/chromium/android_webview/AwContentsClientBridge;)I 04-08 15:39:10.342: E/AndroidRuntime(14052): at org.chromium.android_webview.AwContents.nativeInit(Native Method) 04-08 15:39:10.342: E/AndroidRuntime(14052): at org.chromium.android_webview.AwContents.(AwContents.java:363) 04-08 15:39:10.342: E/AndroidRuntime(14052): at org.chromium.android_webview.AwContents.(AwContents.java:323) 04-08 15:39:10.342: E/AndroidRuntime(14052): at us.costan.chrome.ChromeView.(ChromeView.java:91) 04-08 15:39:10.342: E/AndroidRuntime(14052): ... 26 more

    opened by himanshumistri 3
  • java.lang.NoClassDefFoundError: org.chromium.content.R$string

    java.lang.NoClassDefFoundError: org.chromium.content.R$string

    Using Intellij IDEA 13.1.1

    I'm at a loss on this one... Can anyone point me in the right direction? Thanks! Maybe something needs to be changed with the chromium code? Is it my IDE?

    This exception is thrown when I call ChromeView cv = new ChromeView(this):

    java.lang.NoClassDefFoundError: org.chromium.content.R$string at org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:661) at org.chromium.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:334) at org.chromium.android_webview.AwContents.(AwContents.java:369) at org.chromium.android_webview.AwContents.(AwContents.java:322) at us.costan.chrome.ChromeView.(ChromeView.java:90) at us.costan.chrome.ChromeView.(ChromeView.java:62) at net.hidden.hidden.MainActivity.initUI(MainActivity.java:244) at net.hidden.hidden.MainActivity.onCreate(MainActivity.java:131) at android.app.Activity.performCreate(Activity.java:5372) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2359) at android.app.ActivityThread.access$700(ActivityThread.java:165) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1326) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5455) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) at dalvik.system.NativeStart.main(Native Method)

    opened by phildo77 6
  • java.lang.UnsatisfiedLinkError: Native method not found: org.chromium.content.app.LibraryLoader.nativeLibraryLoaded:([Ljava/lang/String;)I

    java.lang.UnsatisfiedLinkError: Native method not found: org.chromium.content.app.LibraryLoader.nativeLibraryLoaded:([Ljava/lang/String;)I

    Hi

    I already follow the Setting Up to setup my project

    but it has some error when ChromeView.initialize(this); in my Application:

    qq20140323133327

    03-23 13:26:35.954: E/AndroidRuntime(20041): java.lang.UnsatisfiedLinkError: Native method not found: org.chromium.content.app.LibraryLoader.nativeLibraryLoaded:([Ljava/lang/String;)I 03-23 13:26:35.954: E/AndroidRuntime(20041): at org.chromium.content.app.LibraryLoader.nativeLibraryLoaded(Native Method) 03-23 13:26:35.954: E/AndroidRuntime(20041): at org.chromium.content.app.LibraryLoader.initializeAlreadyLocked(LibraryLoader.java:122) 03-23 13:26:35.954: E/AndroidRuntime(20041): at org.chromium.content.app.LibraryLoader.ensureInitialized(LibraryLoader.java:63) 03-23 13:26:35.954: E/AndroidRuntime(20041): at org.chromium.android_webview.AwBrowserProcess$1.run(AwBrowserProcess.java:50) 03-23 13:26:35.954: E/AndroidRuntime(20041): at org.chromium.base.ThreadUtils.runOnUiThreadBlocking(ThreadUtils.java:28) 03-23 13:26:35.954: E/AndroidRuntime(20041): at org.chromium.android_webview.AwBrowserProcess.start(AwBrowserProcess.java:46) 03-23 13:26:35.954: E/AndroidRuntime(20041): at us.costan.chrome.impl.ChromeInitializer.initialize(ChromeInitializer.java:49) 03-23 13:26:35.954: E/AndroidRuntime(20041): at us.costan.chrome.ChromeView.initialize(ChromeView.java:848) 03-23 13:26:35.954: E/AndroidRuntime(20041): at com.cjy.delaylink.MainApplication.onCreate(MainApplication.java:10) 03-23 13:26:35.954: E/AndroidRuntime(20041): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007) 03-23 13:26:35.954: E/AndroidRuntime(20041): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4408) 03-23 13:26:35.954: E/AndroidRuntime(20041): at android.app.ActivityThread.access$1500(ActivityThread.java:145) 03-23 13:26:35.954: E/AndroidRuntime(20041): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1266) 03-23 13:26:35.954: E/AndroidRuntime(20041): at android.os.Handler.dispatchMessage(Handler.java:102) 03-23 13:26:35.954: E/AndroidRuntime(20041): at android.os.Looper.loop(Looper.java:136) 03-23 13:26:35.954: E/AndroidRuntime(20041): at android.app.ActivityThread.main(ActivityThread.java:5081) 03-23 13:26:35.954: E/AndroidRuntime(20041): at java.lang.reflect.Method.invokeNative(Native Method) 03-23 13:26:35.954: E/AndroidRuntime(20041): at java.lang.reflect.Method.invoke(Method.java:515) 03-23 13:26:35.954: E/AndroidRuntime(20041): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781) 03-23 13:26:35.954: E/AndroidRuntime(20041): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 03-23 13:26:35.954: E/AndroidRuntime(20041): at dalvik.system.NativeStart.main(Native Method)

    so how to solve that?

    thank you

    opened by jy1989 10
Owner
Victor Costan
Tech Lead and Manager for the Chrome Capabilities SFO Team at Google
Victor Costan
MarkdownView is an Android webview with the capablity of loading Markdown text or file and display it as HTML, it uses MarkdownJ and extends Android webview.

About MarkdownView (Markdown For Android) is an Android library that helps you display Markdown text or files (local/remote) as formatted HTML, and st

Feras Alnatsheh 1k Dec 20, 2022
Beagle is an open-source framework for cross-platform development using the concept of Server-Driven UI.

Beagle Getting Started · Learn the Basics · Contribute Beagle is an open-source framework for cross-platform development using the concept of Server-D

ZUP IT INNOVATION 657 Dec 28, 2022
This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementation of a lesson on the Pluralsight platform, but with some code improvements

NoteKeeper-Custom-Widgets This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementati

Ibrahim Mushtaha 3 Oct 29, 2022
Android StackBlur is a library that can perform a blurry effect on a Bitmap based on a gradient or radius, and return the result. The library is based on the code of Mario Klingemann.

Android StackBlur Android StackBlur is a library that can perform a blurry effect on a Bitmap based on a gradient or radius, and return the result. Th

Enrique López Mañas 3.6k Dec 29, 2022
Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager (https://github.com/romannurik/android-wizardpager)

Wizard Pager Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager (ht

Julián Suárez 520 Nov 11, 2022
Material Design implementation for Android 4.0+. Shadows, ripples, vectors, fonts, animations, widgets, rounded corners and more.

Carbon Material Design implementation for Android 4.0 and newer. This is not the exact copy of the Lollipop's API and features. It's a custom implemen

null 3k Dec 30, 2022
AndroidTreeView. TreeView implementation for android

AndroidTreeView Recent changes 2D scrolling mode added, keep in mind this comes with few limitations: you won't be able not place views on right side

Bogdan Melnychuk 2.9k Jan 2, 2023
Wizard Pager is a library that provides an example implementation of a Wizard UI on Android

Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager.

Julián Suárez 520 Nov 11, 2022
Fully customizable implementation of "Snowfall View" on Android.

Android-Snowfall Fully customizable implementation of "Snowfall View" on Android. That's how we use it in our app Hotellook Compatibility This library

Jetradar Mobile 1.2k Dec 21, 2022
Multi Roots TreeView implementation for Android Platform with a lot of options and customization

Multi roots TreeView :palm_tree: implementation for Android Platform with a lot of options and customization

Amr Hesham 112 Jan 3, 2023
An implementation of tap targets from the Material Design guidelines for feature discovery.

TapTargetView An implementation of tap targets from Google's Material Design guidelines on feature discovery. Min SDK: 14 JavaDoc Installation TapTar

Keepsafe 5.2k Dec 30, 2022
Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the initial data.

Android-ProgressFragment Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the init

Evgeny Shishkin 813 Nov 11, 2022
A simple implementation of swipe card like StreetView

A simple implementation of swipe card like StreetView!! DONATIONS This project needs you! If you would like to support this project's further developm

Michele Lacorte 831 Jan 4, 2023
A library that provides an implementation of the banner widget from the Material design.

MaterialBanner A banner displays a prominent message and related optional actions. MaterialBanner is a library that provides an implementation of the

Sergey Ivanov 252 Nov 18, 2022
Make your native android Toasts Fancy. A library that takes the standard Android toast to the next level with a variety of styling options. Style your toast from code.

FancyToast-Android Prerequisites Add this in your root build.gradle file (not your module build.gradle file): allprojects { repositories { ... ma

Shashank Singhal 1.2k Dec 26, 2022
Make your native android Dialog Fancy. A library that takes the standard Android Dialog to the next level with a variety of styling options. Style your dialog from code.

FancyAlertDialog-Android Prerequisites Add this in your root build.gradle file (not your module build.gradle file): allprojects { repositories { ..

Shashank Singhal 350 Dec 9, 2022
Android swipe-to-dismiss mini-library and sample code

Android Swipe-to-Dismiss Sample Code Sample code that shows how to make ListView or other views support the swipe-to-dismiss Android UI pattern. See t

Roman Nurik 1.3k Dec 29, 2022
Multiplatform UI DSL with screen management in common code for mobile (android & ios) Kotlin Multiplatform development

Mobile Kotlin widgets This is a Kotlin MultiPlatform library that provides declarative UI and application screens management in common code. You can i

IceRock Development 320 Dec 30, 2022
Owasp-top-five - An intro into writing code for greater Android Security

Don’t get stung by OWASP An intro into writing code for greater Android Security

Ed George 5 Feb 13, 2022