Basically I am trying to launch Unity activity in my existing Android project.
I tried this 2 kinds of ways to import AAR or import gradle project in my existing project.
But when I launch unity activity in my existing Android application it occurs immediate crash.
Problem is this Unity gradle and AAR works well on new Android project.
I think that nativeInitWWW is not working and my android project not able to launch unity activity.
So I build new Gradle from empty Unity project but it doesn`t work well on my Android project.
I researched a lot of times but not able to find similar topics.
Current Unity Version : 2017.2.0f
Android Project :
User App Gradle :
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = ‘1.2.0’
repositories {
jcenter()
google()
}
dependencies {
classpath ‘com.android.tools.build:gradle:3.0.1’
classpath ‘com.google.gms:google-services:3.1.0’
classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version”
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
google()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
ext {
// App dependencies
junitVersion = ‘4.12’
mockitoVersion = ‘1.10.19’
powerMockito = ‘1.6.2’
runnerVersion = ‘0.5’
rulesVersion = ‘0.5’
}
App Gradle :
apply plugin: ‘com.android.application’
apply plugin: ‘kotlin-android’
apply plugin: ‘kotlin-kapt’
apply plugin: ‘kotlin-android-extensions’
android {
compileSdkVersion 26
defaultConfig {
applicationId “com.fanskick.user”
minSdkVersion 19
targetSdkVersion 26
versionCode 15
versionName “1.7.1”
testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner”
multiDexEnabled true
renderscriptSupportModeEnabled true
renderscriptTargetApi 26
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath = true
}
}
ndk {
abiFilters “armeabi-v7a”, “x86”, “armeabi”
}
packagingOptions {
exclude “lib/arm64-v8a/mysofile.so”
}
}
testOptions {
unitTests.returnDefaultValues = true
}
dataBinding {
enabled = true
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
dexOptions {
preDexLibraries = false
javaMaxHeapSize “4g”
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
debug {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation ‘com.android.support:support-v4:26.1.0’
implementation project(path: ‘:TestProj’)
compile fileTree(include: [‘*.jar’], dir: ‘libs’)
testCompile ‘junit:junit:4.12’
androidTestCompile(‘com.android.support.test.espresso:espresso-core:2.2.2’, {
exclude group: ‘com.android.support’, module: ‘support-annotations’
})
compile ‘com.android.support:multidex:1.0.2’
compile ‘com.android.support:appcompat-v7:26.1.0’
compile ‘com.android.support.constraint:constraint-layout:1.0.2’
compile ‘com.android.support:design:26.1.0’
compile ‘com.android.support:recyclerview-v7:26.1.0’
compile ‘com.android.support:cardview-v7:26.1.0’
compile ‘com.google.android.gms:play-services-auth:11.6.2’
compile ‘com.google.android.gms:play-services-plus:11.6.2’
compile ‘com.google.android.gms:play-services-maps:11.6.2’
compile ‘com.google.maps.android:android-maps-utils:0.3.4’
compile ‘com.google.maps.android:android-maps-utils:0.3.4’
compile ‘com.google.firebase:firebase-messaging:11.6.2’
compile ‘com.google.firebase:firebase-crash:11.6.2’
compile ‘com.facebook.android:facebook-android-sdk:4.+’
compile ‘de.greenrobot:eventbus:2.4.0’
compile ‘de.hdodenhof:circleimageview:2.2.0’
compile ‘com.daimajia.swipelayout:library:1.2.0’
compile ‘com.github.bumptech.glide:glide:4.3.1’
compile ‘com.squareup.picasso:picasso:2.5.2’
compile ‘ch.acra:acra:4.6.1’
compile ‘com.google.code.gson:gson:2.8.2’
compile ‘com.squareup.okhttp3:logging-interceptor:3.9.1’
compile ‘com.squareup.retrofit2:converter-gson:2.3.0’
compile ‘com.squareup.retrofit2:retrofit:2.3.0’
implementation “org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version”
kapt ‘com.android.databinding:compiler:3.0.1’
compile ‘com.indooratlas.android:indooratlas-android-sdk:2.6.0’
compile ‘tech.gusavila92:java-android-websocket-client:1.2.0’
implementation project(‘:cameralibrary’)
compile ‘org.projectlombok:lombok:1.16.12’
compile ‘com.google.android.exoplayer:exoplayer:r2.5.1’
// compile ‘de.mrmaffen:vlc-android-sdk:3.0.0’
implementation files(‘libs/YouTubeAndroidPlayerApi.jar’)
compile ‘com.thoughtbot:expandablecheckrecyclerview:1.4’
}
androidExtensions {
experimental = true
}
kapt {
generateStubs = true
}
repositories {
mavenCentral()
google()
maven {
url “http://indooratlas-ltd.bintray.com/mvn-public”
}
maven {
url “https://artifactory.9elements.com/artifactory/imgly”
}
maven { url “https://oss.sonatype.org/content/repositories/snapshots” }
}
apply plugin: ‘com.google.gms.google-services’
Unity Project Gradle :
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ‘com.android.tools.build:gradle:2.3.0’
}
}
allprojects {
repositories {
flatDir {
dirs ‘libs’
}
}
}
apply plugin: ‘com.android.library’
dependencies {
compile fileTree(dir: ‘libs’, include: [‘*.jar’])
}
android {
compileSdkVersion 27
buildToolsVersion ‘27.0.3’
defaultConfig {
targetSdkVersion 27
// applicationId ‘com.Test.Project’
}
lintOptions {
abortOnError false
}
aaptOptions {
noCompress ‘.unity3d’, ‘.ress’, ‘.resource’, ‘.obb’
}
buildTypes {
debug {
minifyEnabled false
useProguard false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-unity.txt’
jniDebuggable true
}
release {
minifyEnabled false
useProguard false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-unity.txt’
signingConfig signingConfigs.debug
}
}
}
Here is the Android LogCat when crashing.
com.unity3d.player.UnityPlayer.nativeInitWWW(java.lang.Class) ((null):-2)
A/art: art/runtime/java_vm_ext.cc:410] at void com.unity3d.player.UnityPlayer.(android.content.Context) ((null):0)
A/art: art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: JNI GetMethodID called with pending exception java.lang.NoSuchMethodError: no non-static method “Lcom/unity3d/player/WWW;.(ILjava/lang/String;[BLjava/util/Map;)V”
A/art: art/runtime/java_vm_ext.cc:410] at void com.unity3d.player.UnityPlayer.nativeInitWWW(java.lang.Class) ((null):-2)
A/art: art/runtime/java_vm_ext.cc:410] at void com.unity3d.player.UnityPlayer.(android.content.Context) ((null):0)
A/art: art/runtime/java_vm_ext.cc:410] at void com.fanskick.user.UnityPlayerActivity.onCreate(android.os.Bundle) (UnityPlayerActivity.java:27)
A/art: art/runtime/java_vm_ext.cc:410] at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6876)
A/art: art/runtime/java_vm_ext.cc:410] at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1135)
A/art: art/runtime/java_vm_ext.cc:410] at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:3206)
A/art: art/runtime/java_vm_ext.cc:410] at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:3349)
A/art: art/runtime/java_vm_ext.cc:410] at void android.app.ActivityThread.access$1100(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:221)
A/art: art/runtime/java_vm_ext.cc:410] at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1794)
A/art: art/runtime/java_vm_ext.cc:410] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
A/art: art/runtime/java_vm_ext.cc:410] at void android.os.Looper.loop() (Looper.java:158)
A/art: art/runtime/java_vm_ext.cc:410] at void android.app.ActivityThread.main(java.lang.String[ ]) (ActivityThread.java:7224)
A/art: art/runtime/java_vm_ext.cc:410] at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[ ]) (Method.java:-2)
A/art: art/runtime/java_vm_ext.cc:410] at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1230)
A/art: art/runtime/java_vm_ext.cc:410] at void com.android.internal.os.ZygoteInit.main(java.lang.String[ ]) (ZygoteInit.java:1120)
A/art: art/runtime/java_vm_ext.cc:410]
A/art: art/runtime/java_vm_ext.cc:410] in call to GetMethodID
A/art: art/runtime/java_vm_ext.cc:410] from void com.unity3d.player.UnityPlayer.nativeInitWWW(java.lang.Class)
A/art: art/runtime/java_vm_ext.cc:410] “main” prio=5 tid=1 Runnable
A/art: art/runtime/java_vm_ext.cc:410] | group=“main” sCount=0 dsCount=0 obj=0x75822598 self=0xb4824500
A/art: art/runtime/java_vm_ext.cc:410] | sysTid=25515 nice=-11 cgrp=apps sched=0/0 handle=0xb6fc0b3c
A/art: art/runtime/java_vm_ext.cc:410] | state=R schedstat=( 4973106751 783871378 3266 ) utm=451 stm=46 core=1 HZ=100
A/art: art/runtime/java_vm_ext.cc:410] | stack=0xbe685000-0xbe687000 stackSize=8MB
A/art: art/runtime/java_vm_ext.cc:410] | held mutexes= “mutator lock”(shared held)
A/art: art/runtime/java_vm_ext.cc:410] native: #00 pc 003715d7 /system/lib/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+142)
A/art: art/runtime/java_vm_ext.cc:410] native: #01 pc 00350c0d /system/lib/libart.so (_ZNK3art6Thread4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEP12BacktraceMap+160)
A/art: art/runtime/java_vm_ext.cc:410] native: #02 pc 0025af83 /system/lib/libart.so (ZN3art9JavaVMExt8JniAbortEPKcS2+742)
A/art: art/runtime/java_vm_ext.cc:410] native: #03 pc 0025b65d /system/lib/libart.so (_ZN3art9JavaVMExt9JniAbortVEPKcS2_St9__va_list+64)
A/art: art/runtime/java_vm_ext.cc:410] native: #04 pc 000fd061 /system/lib/libart.so (_ZN3art11ScopedCheck6AbortFEPKcz+32)
A/art: art/runtime/java_vm_ext.cc:410] native: #05 pc 00102175 /system/lib/libart.so (_ZN3art11ScopedCheck5CheckERNS_18ScopedObjectAccessEbPKcPNS_12JniValueTypeE.constprop.95+5072)
A/art: art/runtime/java_vm_ext.cc:410] native: #06 pc 00112dbd /system/lib/libart.so (ZN3art8CheckJNI11GetMethodIDEP7_JNIEnvP7_jclassPKcS6+396)
A/art: art/runtime/java_vm_ext.cc:410] native: #07 pc 005d39fc /data/app/com.fanskick.user-2/lib/arm/libunity.so (???)
A/art: art/runtime/java_vm_ext.cc:410] native: #08 pc 005c0758 /data/app/com.fanskick.user-2/lib/arm/libunity.so (???)
A/art: art/runtime/java_vm_ext.cc:410] native: #09 pc 000ea879 /system/lib/libart.so (art_quick_generic_jni_trampoline+40)
A/art: art/runtime/java_vm_ext.cc:410] native: #10 pc 000e6181 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
A/art: art/runtime/java_vm_ext.cc:410] native: #11 pc 004030bd /system/lib/libart.so (art_quick_invoke_stub+188)
A/art: art/runtime/java_vm_ext.cc:410] native: #12 pc 007fd36c [stack] (???)
A/art: art/runtime/java_vm_ext.cc:410] at com.unity3d.player.UnityPlayer.nativeInitWWW(Native method)
A/art: art/runtime/java_vm_ext.cc:410] at com.unity3d.player.UnityPlayer.(unavailable:0)
A/art: art/runtime/java_vm_ext.cc:410] at com.fanskick.user.UnityPlayerActivity.onCreate(UnityPlayerActivity.java:27)
A/art: art/runtime/java_vm_ext.cc:410] at android.app.Activity.performCreate(Activity.java:6876)
A/art: art/runtime/java_vm_ext.cc:410] at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
A/art: art/runtime/java_vm_ext.cc:410] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
A/art: art/runtime/java_vm_ext.cc:410] at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
A/art: art/runtime/java_vm_ext.cc:410] at android.app.ActivityThread.access$1100(ActivityThread.java:221)
A/art: art/runtime/java_vm_ext.cc:410] at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
A/art: art/runtime/java_vm_ext.cc:410] at android.os.Handler.dispatchMessage(Handler.java:102)
A/art: art/runtime/java_vm_ext.cc:410] at android.os.Looper.loop(Looper.java:158)
A/art: art/runtime/java_vm_ext.cc:410] at android.app.ActivityThread.main(ActivityThread.java:7224)
A/art: art/runtime/java_vm_ext.cc:410] at java.lang.reflect.Method.invoke!(Native method)
A/art: art/runtime/java_vm_ext.cc:410] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
A/art: art/runtime/java_vm_ext.cc:410] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
A/art: art/runtime/java_vm_ext.cc:410]
A/art: art/runtime/runtime.cc:368] Runtime aborting…
A/art: art/runtime/runtime.cc:368]