[WIP] gradle builds but app freezes, updated fbjni so file is the possible culprit

This commit is contained in:
Pritesh Nandgaonkar
2018-06-21 16:26:39 +01:00
parent 58b31fdc6c
commit edfdd64950
15 changed files with 150 additions and 187 deletions

View File

@@ -39,7 +39,6 @@ set(glog_DIR ${third_party_ndk}/glog)
set(BOOST_DIR ${third_party_ndk}/boost/boost_1_63_0/)
set(LIBEVENT_DIR ${third_party_ndk}/LibEvent/libevent-release-2.1.9/)
message(STATUS "AAAANDROID LIBEVENT_DIR => " ${LIBEVENT_DIR})
set(build_DIR ${CMAKE_SOURCE_DIR}/build)
set(fbjni_build_DIR ${build_DIR}/fbjni/${ANDROID_ABI})

View File

@@ -196,7 +196,7 @@ android {
targetSdkVersion rootProject.targetSdkVersion
buildConfigField "boolean", "IS_INTERNAL_BUILD", 'true'
ndk {
abiFilters 'arm64-v8a', 'x86'
abiFilters 'arm64-v8a', 'x86', 'armeabi-v7a'
stl 'c++_shared'
}

View File

@@ -45,19 +45,19 @@ dependencies {
androidTestImplementation deps.supportTestRunner
androidTestImplementation deps.supportEspresso
// Litho
// implementation deps.lithoCore
// implementation deps.lithoWidget
// compileOnly deps.lithoAnnotations
implementation deps.lithoCore
implementation deps.lithoWidget
compileOnly deps.lithoAnnotations
// annotationProcessor deps.lithoProcessor
annotationProcessor deps.lithoProcessor
// SoLoader
implementation deps.soloader
// For integration with Fresco
// implementation deps.lithoFresco
implementation deps.lithoFresco
// For testing
// testImplementation deps.lithoTesting
testImplementation deps.lithoTesting
implementation deps.okhttp3
implementation project(':android')

View File

@@ -8,8 +8,8 @@ import java.util.List;
import android.widget.LinearLayout.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
// import com.facebook.litho.ComponentContext;
// import com.facebook.litho.LithoView;
import com.facebook.litho.ComponentContext;
import com.facebook.litho.LithoView;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
@@ -17,21 +17,10 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("ON CREATE SAMPLE APP", "I m in Oncreate of sample app");
// final ComponentContext c = new ComponentContext(this);
// setContentView(
// LithoView.create(
// c,
// RootComponent.create(c).build()));
LinearLayout linearLayout = new LinearLayout(this);
TextView ProgrammaticallyTextView = new TextView(this);
ProgrammaticallyTextView.setText("Hello World");
ProgrammaticallyTextView.setTextSize(22);
ProgrammaticallyTextView.setPadding(20, 300, 20, 100);
linearLayout.addView(ProgrammaticallyTextView);
setContentView(linearLayout, new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
final ComponentContext c = new ComponentContext(this);
setContentView(
LithoView.create(
c,
RootComponent.create(c).build()));
}
}

View File

@@ -1,105 +1,105 @@
// // Copyright 2004-present Facebook. All Rights Reserved.
//
// package com.facebook.sonar.sample;
//
// import com.facebook.litho.Column;
// import com.facebook.litho.Component;
// import com.facebook.litho.ComponentContext;
// import com.facebook.litho.annotations.LayoutSpec;
// import com.facebook.litho.annotations.OnCreateLayout;
// import com.facebook.litho.widget.Text;
// import okhttp3.Request;
// import okhttp3.Response;
// import okhttp3.RequestBody;
// import okhttp3.FormBody;
// import okhttp3.FormBody.Builder;
// import okhttp3.OkHttpClient;
// import okhttp3.Call;
// import okhttp3.Callback;
// import com.facebook.litho.ClickEvent;
// import android.util.Log;
// import java.io.IOException;
// import com.facebook.litho.annotations.OnEvent;
//
// @LayoutSpec
// public class RootComponentSpec {
//
// @OnCreateLayout
// static Component onCreateLayout(ComponentContext c) {
// return Column.create(c)
// .child(
// Text.create(c)
// .text("Tap to hit get request")
// .key("1")
// .textSizeSp(20)
// .clickHandler(RootComponent.hitGetRequest(c)))
// .child(
// Text.create(c)
// .text("Tap to hit post request")
// .key("2")
// .textSizeSp(20)
// .clickHandler(RootComponent.hitPostRequest(c)))
// .child(
// Text.create(c)
// .text("I m just a text")
// .key("3")
// .textSizeSp(20))
// .build();
// }
//
// @OnEvent(ClickEvent.class)
// static void hitGetRequest(ComponentContext c) {
//
// Request request = new Request.Builder()
// .url("https://api.github.com/repos/facebook/yoga")
// .get()
// .build();
// SonarSampleApplication.okhttpClient.newCall(request).enqueue(new Callback() {
// @Override
// public void onFailure(Call call, IOException e) {
// e.printStackTrace();
// Log.d("Sonar", e.getMessage());
// }
//
// @Override
// public void onResponse(Call call, Response response) throws IOException {
// if (response.isSuccessful()) {
// Log.d("Sonar", response.body().string());
// } else {
// Log.d("Sonar", "not successful");
// }
// }
// });
// }
//
// @OnEvent(ClickEvent.class)
// static void hitPostRequest(ComponentContext c) {
//
// RequestBody formBody = new FormBody.Builder()
// .add("app", "Sonar")
// .add("remarks", "Its awesome")
// .build();
//
// Request request = new Request.Builder()
// .url("https://demo9512366.mockable.io/SonarPost")
// .post(formBody)
// .build();
//
// SonarSampleApplication.okhttpClient.newCall(request).enqueue(new Callback() {
// @Override
// public void onFailure(Call call, IOException e) {
// e.printStackTrace();
// Log.d("Sonar", e.getMessage());
// }
//
// @Override
// public void onResponse(Call call, Response response) throws IOException {
// if (response.isSuccessful()) {
// Log.d("Sonar", response.body().string());
// } else {
// Log.d("Sonar", "not successful");
// }
// }
// });
// }
// }
// Copyright 2004-present Facebook. All Rights Reserved.
package com.facebook.sonar.sample;
import com.facebook.litho.Column;
import com.facebook.litho.Component;
import com.facebook.litho.ComponentContext;
import com.facebook.litho.annotations.LayoutSpec;
import com.facebook.litho.annotations.OnCreateLayout;
import com.facebook.litho.widget.Text;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.RequestBody;
import okhttp3.FormBody;
import okhttp3.FormBody.Builder;
import okhttp3.OkHttpClient;
import okhttp3.Call;
import okhttp3.Callback;
import com.facebook.litho.ClickEvent;
import android.util.Log;
import java.io.IOException;
import com.facebook.litho.annotations.OnEvent;
@LayoutSpec
public class RootComponentSpec {
@OnCreateLayout
static Component onCreateLayout(ComponentContext c) {
return Column.create(c)
.child(
Text.create(c)
.text("Tap to hit get request")
.key("1")
.textSizeSp(20)
.clickHandler(RootComponent.hitGetRequest(c)))
.child(
Text.create(c)
.text("Tap to hit post request")
.key("2")
.textSizeSp(20)
.clickHandler(RootComponent.hitPostRequest(c)))
.child(
Text.create(c)
.text("I m just a text")
.key("3")
.textSizeSp(20))
.build();
}
@OnEvent(ClickEvent.class)
static void hitGetRequest(ComponentContext c) {
Request request = new Request.Builder()
.url("https://api.github.com/repos/facebook/yoga")
.get()
.build();
SonarSampleApplication.okhttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
Log.d("Sonar", e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
Log.d("Sonar", response.body().string());
} else {
Log.d("Sonar", "not successful");
}
}
});
}
@OnEvent(ClickEvent.class)
static void hitPostRequest(ComponentContext c) {
RequestBody formBody = new FormBody.Builder()
.add("app", "Sonar")
.add("remarks", "Its awesome")
.build();
Request request = new Request.Builder()
.url("https://demo9512366.mockable.io/SonarPost")
.post(formBody)
.build();
SonarSampleApplication.okhttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
Log.d("Sonar", e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
Log.d("Sonar", response.body().string());
} else {
Log.d("Sonar", "not successful");
}
}
});
}
}

View File

@@ -10,54 +10,46 @@ import java.util.List;
import android.widget.LinearLayout.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
// import com.facebook.litho.sonar.LithoSonarDescriptors;
import com.facebook.litho.sonar.LithoSonarDescriptors;
import com.facebook.soloader.SoLoader;
import com.facebook.sonar.plugins.inspector.DescriptorMapping;
import com.facebook.sonar.plugins.inspector.InspectorSonarPlugin;
// import com.facebook.sonar.android.utils.SonarUtils;
import com.facebook.sonar.android.utils.SonarUtils;
import com.facebook.sonar.android.AndroidSonarClient;
import com.facebook.sonar.core.SonarClient;
// import com.facebook.sonar.plugins.inspector.DescriptorMapping;
// import com.facebook.sonar.plugins.inspector.InspectorSonarPlugin;
// import com.facebook.sonar.plugins.network.NetworkSonarPlugin;
// import com.facebook.sonar.plugins.network.SonarOkhttpInterceptor;
// import com.facebook.sonar.plugins.network.NetworkResponseFormatter;
// import okhttp3.OkHttpClient;
import com.facebook.sonar.plugins.inspector.DescriptorMapping;
import com.facebook.sonar.plugins.inspector.InspectorSonarPlugin;
import com.facebook.sonar.plugins.network.NetworkSonarPlugin;
import com.facebook.sonar.plugins.network.SonarOkhttpInterceptor;
import com.facebook.sonar.plugins.network.NetworkResponseFormatter;
import okhttp3.OkHttpClient;
import java.util.concurrent.TimeUnit;
public class SonarSampleApplication extends Application {
//static public OkHttpClient okhttpClient;
static public OkHttpClient okhttpClient;
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, false);
try {
//SoLoader.loadLibrary("sonarfb");
SoLoader.loadLibrary("sonarfb");
} catch (Exception e) {
throw new RuntimeException(e);
}
// final SonarClient client = AndroidSonarClient.getInstance(this);
// final DescriptorMapping descriptorMapping = DescriptorMapping.withDefaults();
// client.addPlugin(new InspectorSonarPlugin(this, descriptorMapping));
// client.start();
// final DescriptorMapping descriptorMapping = DescriptorMapping.withDefaults();
//
// NetworkSonarPlugin networkPlugin = new NetworkSonarPlugin();
// SonarOkhttpInterceptor interceptor = new SonarOkhttpInterceptor(networkPlugin);
//
// okhttpClient = new OkHttpClient.Builder()
// .addNetworkInterceptor(interceptor)
// .connectTimeout(60, TimeUnit.SECONDS)
// .readTimeout(60, TimeUnit.SECONDS)
// .writeTimeout(10, TimeUnit.MINUTES)
// .build();
//
// //LithoSonarDescriptors.add(descriptorMapping);
// //client.addPlugin(new InspectorSonarPlugin(this, descriptorMapping));
// client.addPlugin(networkPlugin);
// client.start();
final SonarClient client = AndroidSonarClient.getInstance(this);
final DescriptorMapping descriptorMapping = DescriptorMapping.withDefaults();
NetworkSonarPlugin networkPlugin = new NetworkSonarPlugin();
SonarOkhttpInterceptor interceptor = new SonarOkhttpInterceptor(networkPlugin);
okhttpClient = new OkHttpClient.Builder()
.addNetworkInterceptor(interceptor)
.connectTimeout(60, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.MINUTES)
.build();
LithoSonarDescriptors.add(descriptorMapping);
client.addPlugin(new InspectorSonarPlugin(this, descriptorMapping));
client.addPlugin(networkPlugin);
client.start();
}
}

View File

@@ -6,7 +6,6 @@ set(PACKAGE_NAME doubleconversion)
set(doubleconversion_DIR double-conversion-3.0.0/double-conversion)
include_directories(${doubleconversion_DIR})
file(GLOB SRCFILES ${doubleconversion_DIR}/*.cc)
message(STATUS "SRC FILES :- " ${SRCFILES})
add_library(${PACKAGE_NAME} SHARED ${SRCFILES})
install(TARGETS ${PACKAGE_NAME} DESTINATION ./build/)
target_link_libraries(${PACKAGE_NAME})

View File

@@ -106,7 +106,6 @@ list(APPEND SRC_FILES ${FOLLY_DIR}/io/async/HHWheelTimer.cpp
${FOLLY_DIR}/memory/detail/MallocImpl.cpp
)
message(STATUS "SRC FILES:- " ${SRC_FILES})
add_library(${PACKAGE_NAME} SHARED ${SRC_FILES})
set(build_DIR ${CMAKE_SOURCE_DIR}/build)
@@ -135,7 +134,6 @@ target_include_directories(${PACKAGE_NAME} PRIVATE
set(LIBEXTRA_PATH /Users/prit91/LocalDevTesting/sonar-upstream-proper/Sonar/android/build/third-party-ndk/LibEvent/.externalNativeBuild/cmake/debug/${ANDROID_ABI}/lib)
set(OPENSSL_LINK_DIRECTORIES ${PROJECT_SOURCE_DIR}/../OpenSSL/libs/${ANDROID_ABI}/)
find_path(OPENSSL_LIBRARY libssl.so HINTS ${OPENSSL_LINK_DIRECTORIES})
message(STATUS "link_directories:- " ${LIBEVENT_LINK_DIRECTORIES})
install(TARGETS ${PACKAGE_NAME} DESTINATION ./build/)

View File

@@ -9,7 +9,7 @@ android {
targetSdkVersion rootProject.targetSdkVersion
buildConfigField "boolean", "IS_INTERNAL_BUILD", 'true'
ndk {
abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
abiFilters 'arm64-v8a', 'x86', 'armeabi-v7a', 'armeabi'
}
externalNativeBuild {
@@ -40,5 +40,3 @@ android {
}
}
// 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
//'arm64-v8a', 'x86', 'armeabi-v7a'

View File

@@ -32,7 +32,6 @@ list(APPEND SRCFILES ${LIBEVENT_DIR}/event.c
${LIBEVENT_DIR}/strlcpy.c
)
message(STATUS "DIR_LIST :- " ${DIR_LIST})
add_library(${PACKAGE_NAME} SHARED ${SRCFILES})
install(TARGETS ${PACKAGE_NAME} DESTINATION ./build/)
target_link_libraries(${PACKAGE_NAME})

View File

@@ -8,7 +8,7 @@ android {
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
ndk {
abiFilters 'arm64-v8a', 'x86', 'armeabi-v7a'
abiFilters 'arm64-v8a', 'x86', 'armeabi-v7a', 'armeabi'
}
externalNativeBuild {
@@ -31,4 +31,3 @@ android {
}
}
}
//'x86', 'x86_64', 'armeabi-v7a',

View File

@@ -8,7 +8,7 @@ android {
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
ndk {
abiFilters 'arm64-v8a', 'x86', 'armeabi-v7a'
abiFilters 'arm64-v8a', 'x86', 'armeabi-v7a', 'armeabi'
}
externalNativeBuild {

View File

@@ -18,7 +18,6 @@ set(RSOCKET_DIR ${PROJECT_SOURCE_DIR}/rsocket-cpp-0.10.1/rsocket)
list(APPEND dir_list ${RSOCKET_ROOT_DIR}/)
list(APPEND dir_list ${RSOCKET_DIR}/)
#list(APPEND dir_list ${RSOCKET_DIR}/benchmarks)
list(APPEND dir_list ${RSOCKET_DIR}/framing)
list(APPEND dir_list ${RSOCKET_DIR}/internal)
list(APPEND dir_list ${RSOCKET_DIR}/statemachine)
@@ -29,7 +28,6 @@ list(APPEND dir_list ${RSOCKET_ROOT_DIR}/yarpl/observable)
list(APPEND dir_list ${RSOCKET_ROOT_DIR}/yarpl/utils)
file(GLOB SRC_FILES ${RSOCKET_DIR}/*.cpp
# ${RSOCKET_DIR}/benchmarks/*.cpp
${RSOCKET_DIR}/internal/*.cpp
${RSOCKET_DIR}/framing/*.cpp
${RSOCKET_DIR}/statemachine/*.cpp
@@ -62,8 +60,6 @@ add_compile_options(
-Wno-tautological-constant-compare
)
#file(GLOB_RECURSE SRCFILES ${RSOCKET_DIR}/*.cpp)
add_library(${PACKAGE_NAME} SHARED ${SRC_FILES})
set(build_DIR ${CMAKE_SOURCE_DIR}/build)
@@ -89,7 +85,6 @@ target_include_directories(${PACKAGE_NAME} PRIVATE
)
#install(TARGETS ${PACKAGE_NAME} DESTINATION ./build/)
set(OPENSSL_LINK_DIRECTORIES ${third_party_ndk}/OpenSSL/libs/${ANDROID_ABI}/)
find_path(OPENSSL_LIBRARY libssl.so HINTS ${OPENSSL_LINK_DIRECTORIES})

View File

@@ -13,7 +13,6 @@ list(APPEND dir_list ${glog_DIR}/src)
list(APPEND dir_list ${glog_DIR}/glog)
list(APPEND dir_list ${glog_DIR}/base)
message(STATUS "dir_list = " ${dir_list})
include_directories(${dir_list})
add_compile_options(

View File

@@ -32,7 +32,6 @@ list(APPEND FBJNI_HDRS ${FBJNI_CXX}/../../jni-hack)
include_directories(${FBJNI_HDRS})
message(STATUS "FBJNI_HDRS =>" ${FBJNI_HDRS})
file(GLOB FBJNI_SRC
${FBJNI_CXX}/fbjni/*.cpp
${FBJNI_CXX}/fbjni/detail/*.cpp
@@ -42,9 +41,6 @@ file(GLOB FBJNI_SRC
add_library(${PACKAGE_NAME} SHARED
${FBJNI_SRC})
target_include_directories(${PACKAGE_NAME} PRIVATE
include ${FBJNI_HDRS})
#install(TARGETS ${PACKAGE_NAME} DESTINATION ./build/)
target_include_directories(${PACKAGE_NAME} PRIVATE ${FBJNI_HDRS})
target_link_libraries(${PACKAGE_NAME} android log)