Extension for Deep Links on Android (Solved with example)

Found that the problem was on the haxe code. Type on JNI was missing a ;

getLinkedUrl = JNI.createStaticMethod(“com.deeplink.DeepLinking”, “getLinkedUrl”, “()Ljava/lang/String;”);

Now is crashing when it receives a Deep Link:

--------- beginning of crash
03-07 05:43:37.084 22328 22328 E AndroidRuntime: FATAL EXCEPTION: main
03-07 05:43:37.084 22328 22328 E AndroidRuntime: Process: com.tembac.bichitosMaker, PID: 22328
03-07 05:43:37.084 22328 22328 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.tembac.bichitosMaker/org.haxe.extension.deeplinking}: java.lang.ClassNotFoundException: Didn't find class "org.haxe.extension.deeplinking" on path: DexPathList[[zip file "/data/app/com.tembac.bichitosMaker-GaYCF_knD2vLWBdL-CFL-A==/base.apk"],nativeLibraryDirectories=[/data/app/com.tembac.bichitosMaker-GaYCF_knD2vLWBdL-CFL-A==/lib/arm, /system/fake-libs, /data/app/com.tembac.bichitosMaker-GaYCF_knD2vLWBdL-CFL-A==/base.apk!/lib/armeabi, /system/lib, /vendor/lib]]
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2679)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at android.app.ActivityThread.-wrap11(Unknown Source:0)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:164)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:6494)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "org.haxe.extension.deeplinking" on path: DexPathList[[zip file "/data/app/com.tembac.bichitosMaker-GaYCF_knD2vLWBdL-CFL-A==/base.apk"],nativeLibraryDirectories=[/data/app/com.tembac.bichitosMaker-GaYCF_knD2vLWBdL-CFL-A==/lib/arm, /system/fake-libs, /data/app/com.tembac.bichitosMaker-GaYCF_knD2vLWBdL-CFL-A==/base.apk!/lib/armeabi, /system/lib, /vendor/lib]]
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at android.app.Instrumentation.newActivity(Instrumentation.java:1174)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669)
03-07 05:43:37.084 22328 22328 E AndroidRuntime: 	... 9 more
03-07 05:43:37.089   790  2082 W ActivityManager:   Force finishing activity com.tembac.bichitosMaker/org.haxe.extension.deeplinking
03-07 05:43:37.092   790   806 I ActivityManager: Showing crash dialog for package com.tembac.bichitosMaker u0

I think something is wrong with my java code but I’m sure what.

package org.haxe.extension;


import android.app.Activity;
import android.content.res.AssetManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import org.haxe.extension.Extension;
import android.net.Uri;


public class DeepLinking extends Extension {

	private static String urlLinked = "no link yet.";
	
	public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
		
		Extension.callbackHandler.post(new Runnable() {
			@Override public void run() {
				//setContentView(Extension.mainView);

				// Get the intent set on this activity
				Intent intent = Extension.mainActivity.getIntent();

				// Get the uri from the intent
				Uri uri = intent.getData();

				// Do not continue if the uri does not exist
				if (uri == null) {
					return;
				}
				
				final String dataString = intent.getDataString();
				if(dataString == null)
				{
					urlLinked = dataString;
				}
			}
		});
    }



	
	public static String linkedUrl () {

		return urlLinked;

	}



}

Or maybe the problem is on the manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.haxe.extension.extension" >

	<application>
		<activity android:name=".mainActivity"
			android:launchMode="singleTask">
			<intent-filter>
				<action android:name="android.intent.action.VIEW" />
				<category android:name="android.intent.category.DEFAULT" />
				<category android:name="android.intent.category.BROWSABLE" />
				<data android:scheme="http"
					  android:host="tembac.com"
					  android:pathPrefix="/breed" />
				<data android:scheme="http"
					  android:host="www.tembac.com"
					  android:pathPrefix="/breed" />
			</intent-filter>
		</activity>
	</application>

</manifest>