77个文件已添加
2个文件已删除
4个文件已修改
1 文件已重命名
| | |
| | | <option name="testRunner" value="PLATFORM" />
|
| | | <option name="distributionType" value="DEFAULT_WRAPPED" />
|
| | | <option name="externalProjectPath" value="$PROJECT_DIR$" />
|
| | | <option name="gradleJvm" value="1.8" />
|
| | | <option name="modules">
|
| | | <set>
|
| | | <option value="$PROJECT_DIR$" />
|
| | |
| | | <?xml version="1.0" encoding="UTF-8"?>
|
| | | <project version="4">
|
| | | <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
| | | <output url="file://$PROJECT_DIR$/build/classes" />
|
| | | </component>
|
| | | <component name="ProjectType">
|
| | | <option name="id" value="Android" />
|
| | | </component>
|
| | | <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
|
| | | </project> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="VcsDirectoryMappings"> |
| | | <mapping directory="$PROJECT_DIR$/.." vcs="Git" /> |
| | | </component> |
| | | </project> |
| | |
| | | jniLibs.srcDirs = ['src/main/jniLibs']
|
| | | }
|
| | | }
|
| | | ndkVersion '22.0.7026061'
|
| | | }
|
| | |
|
| | | dependencies {
|
| | |
| | | # This option should only be used with decoupled projects. More details, visit
|
| | | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
| | | # org.gradle.parallel=true
|
| | | android.useDeprecateNdk=true
|
| | |
|
| | |
|
New file |
| | |
| | | *.iml |
| | | .gradle |
| | | /local.properties |
| | | /.idea/workspace.xml |
| | | /.idea/libraries |
| | | .DS_Store |
| | | /build |
| | | /captures |
| | | .externalNativeBuild |
New file |
| | |
| | | # Default ignored files |
| | | /shelf/ |
| | | /workspace.xml |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="CompilerConfiguration"> |
| | | <bytecodeTargetLevel target="1.8" /> |
| | | </component> |
| | | </project> |
New file |
| | |
| | | <component name="CopyrightManager"> |
| | | <settings default="" /> |
| | | </component> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="GradleMigrationSettings" migrationVersion="1" /> |
| | | <component name="GradleSettings"> |
| | | <option name="linkedExternalProjectsSettings"> |
| | | <GradleProjectSettings> |
| | | <option name="testRunner" value="PLATFORM" /> |
| | | <option name="distributionType" value="DEFAULT_WRAPPED" /> |
| | | <option name="externalProjectPath" value="$PROJECT_DIR$" /> |
| | | <option name="modules"> |
| | | <set> |
| | | <option value="$PROJECT_DIR$" /> |
| | | <option value="$PROJECT_DIR$/app" /> |
| | | <option value="$PROJECT_DIR$/multilibs" /> |
| | | </set> |
| | | </option> |
| | | <option name="resolveModulePerSourceSet" value="false" /> |
| | | <option name="useQualifiedModuleNames" value="true" /> |
| | | </GradleProjectSettings> |
| | | </option> |
| | | </component> |
| | | </project> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="RemoteRepositoriesConfiguration"> |
| | | <remote-repository> |
| | | <option name="id" value="central" /> |
| | | <option name="name" value="Maven Central repository" /> |
| | | <option name="url" value="https://repo1.maven.org/maven2" /> |
| | | </remote-repository> |
| | | <remote-repository> |
| | | <option name="id" value="jboss.community" /> |
| | | <option name="name" value="JBoss Community repository" /> |
| | | <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> |
| | | </remote-repository> |
| | | <remote-repository> |
| | | <option name="id" value="BintrayJCenter" /> |
| | | <option name="name" value="BintrayJCenter" /> |
| | | <option name="url" value="https://jcenter.bintray.com/" /> |
| | | </remote-repository> |
| | | </component> |
| | | </project> |
New file |
| | |
| | | <component name="MarkdownNavigator.ProfileManager"> |
| | | <settings default="" /> |
| | | </component> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="MarkdownProjectSettings"> |
| | | <PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true"> |
| | | <PanelProvider> |
| | | <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" /> |
| | | </PanelProvider> |
| | | </PreviewSettings> |
| | | <ParserSettings> |
| | | <PegdownExtensions> |
| | | <option name="ABBREVIATIONS" value="false" /> |
| | | <option name="ANCHORLINKS" value="true" /> |
| | | <option name="ATXHEADERSPACE" value="true" /> |
| | | <option name="AUTOLINKS" value="true" /> |
| | | <option name="DEFINITIONS" value="false" /> |
| | | <option name="FENCED_CODE_BLOCKS" value="true" /> |
| | | <option name="FOOTNOTES" value="false" /> |
| | | <option name="HARDWRAPS" value="false" /> |
| | | <option name="INSERTED" value="false" /> |
| | | <option name="QUOTES" value="false" /> |
| | | <option name="RELAXEDHRULES" value="true" /> |
| | | <option name="SMARTS" value="false" /> |
| | | <option name="STRIKETHROUGH" value="true" /> |
| | | <option name="SUBSCRIPT" value="false" /> |
| | | <option name="SUPERSCRIPT" value="false" /> |
| | | <option name="SUPPRESS_HTML_BLOCKS" value="false" /> |
| | | <option name="SUPPRESS_INLINE_HTML" value="false" /> |
| | | <option name="TABLES" value="true" /> |
| | | <option name="TASKLISTITEMS" value="true" /> |
| | | <option name="TOC" value="false" /> |
| | | <option name="WIKILINKS" value="true" /> |
| | | </PegdownExtensions> |
| | | <ParserOptions> |
| | | <option name="COMMONMARK_LISTS" value="false" /> |
| | | <option name="DUMMY" value="false" /> |
| | | <option name="EMOJI_SHORTCUTS" value="true" /> |
| | | <option name="FLEXMARK_FRONT_MATTER" value="false" /> |
| | | <option name="GFM_TABLE_RENDERING" value="true" /> |
| | | <option name="GITBOOK_URL_ENCODING" value="false" /> |
| | | <option name="GITHUB_EMOJI_URL" value="false" /> |
| | | <option name="GITHUB_LISTS" value="true" /> |
| | | <option name="GITHUB_WIKI_LINKS" value="true" /> |
| | | <option name="JEKYLL_FRONT_MATTER" value="false" /> |
| | | <option name="SIM_TOC_BLANK_LINE_SPACER" value="true" /> |
| | | </ParserOptions> |
| | | </ParserSettings> |
| | | <HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true"> |
| | | <GeneratorProvider> |
| | | <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" /> |
| | | </GeneratorProvider> |
| | | <headerTop /> |
| | | <headerBottom /> |
| | | <bodyTop /> |
| | | <bodyBottom /> |
| | | </HtmlSettings> |
| | | <CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssTextEnabled="false" isDynamicPageWidth="true"> |
| | | <StylesheetProvider> |
| | | <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" /> |
| | | </StylesheetProvider> |
| | | <ScriptProviders /> |
| | | <cssText /> |
| | | </CssSettings> |
| | | <HtmlExportSettings updateOnSave="false" parentDir="$ProjectFileDir$" targetDir="$ProjectFileDir$" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetExt="" useTargetExt="false" noCssNoScripts="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" /> |
| | | <LinkMapSettings> |
| | | <textMaps /> |
| | | </LinkMapSettings> |
| | | </component> |
| | | <component name="NullableNotNullManager"> |
| | | <option name="myDefaultNullable" value="android.support.annotation.Nullable" /> |
| | | <option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> |
| | | <option name="myNullables"> |
| | | <value> |
| | | <list size="14"> |
| | | <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" /> |
| | | <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" /> |
| | | <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" /> |
| | | <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" /> |
| | | <item index="4" class="java.lang.String" itemvalue="androidx.annotation.Nullable" /> |
| | | <item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" /> |
| | | <item index="6" class="java.lang.String" itemvalue="com.android.annotations.Nullable" /> |
| | | <item index="7" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" /> |
| | | <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" /> |
| | | <item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" /> |
| | | <item index="10" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" /> |
| | | <item index="11" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.Nullable" /> |
| | | <item index="12" class="java.lang.String" itemvalue="io.reactivex.annotations.Nullable" /> |
| | | <item index="13" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.Nullable" /> |
| | | </list> |
| | | </value> |
| | | </option> |
| | | <option name="myNotNulls"> |
| | | <value> |
| | | <list size="13"> |
| | | <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" /> |
| | | <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" /> |
| | | <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" /> |
| | | <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" /> |
| | | <item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" /> |
| | | <item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" /> |
| | | <item index="6" class="java.lang.String" itemvalue="com.android.annotations.NonNull" /> |
| | | <item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" /> |
| | | <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" /> |
| | | <item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" /> |
| | | <item index="10" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" /> |
| | | <item index="11" class="java.lang.String" itemvalue="io.reactivex.annotations.NonNull" /> |
| | | <item index="12" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.NonNull" /> |
| | | </list> |
| | | </value> |
| | | </option> |
| | | </component> |
| | | <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> |
| | | <output url="file://$PROJECT_DIR$/build/classes" /> |
| | | </component> |
| | | <component name="ProjectType"> |
| | | <option name="id" value="Android" /> |
| | | </component> |
| | | <component name="masterDetails"> |
| | | <states> |
| | | <state key="ProjectJDKs.UI"> |
| | | <settings> |
| | | <last-edited>1.8</last-edited> |
| | | <splitter-proportions> |
| | | <option name="proportions"> |
| | | <list> |
| | | <option value="0.2" /> |
| | | </list> |
| | | </option> |
| | | </splitter-proportions> |
| | | </settings> |
| | | </state> |
| | | </states> |
| | | </component> |
| | | </project> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="ProjectModuleManager"> |
| | | <modules> |
| | | <module fileurl="file://$PROJECT_DIR$/singleLib.iml" filepath="$PROJECT_DIR$/singleLib.iml" /> |
| | | <module fileurl="file://$PROJECT_DIR$/.idea/modules/app/singleLib.app.iml" filepath="$PROJECT_DIR$/.idea/modules/app/singleLib.app.iml" /> |
| | | <module fileurl="file://$PROJECT_DIR$/.idea/modules/multilibs/singleLib.multilibs.iml" filepath="$PROJECT_DIR$/.idea/modules/multilibs/singleLib.multilibs.iml" /> |
| | | </modules> |
| | | </component> |
| | | </project> |
New file |
| | |
| | | { |
| | | "allAbis": [ |
| | | "armeabi", |
| | | "armeabi-v7a" |
| | | ], |
| | | "validAbis": [ |
| | | "ARMEABI", |
| | | "ARMEABI_V7A" |
| | | ] |
| | | } |
New file |
| | |
| | | { |
| | | "ndkHandlerSupportedAbis": [ |
| | | "ARMEABI_V7A", |
| | | "ARM64_V8A", |
| | | "X86", |
| | | "X86_64" |
| | | ], |
| | | "ndkHandlerDefaultAbis": [ |
| | | "ARMEABI_V7A", |
| | | "ARM64_V8A", |
| | | "X86", |
| | | "X86_64" |
| | | ], |
| | | "externalNativeBuildAbiFilters": [ |
| | | "armeabi-v7a", |
| | | "armeabi" |
| | | ], |
| | | "ndkConfigAbiFilters": [], |
| | | "splitsFilterAbis": [], |
| | | "ideBuildOnlyTargetAbi": true |
| | | } |
New file |
| | |
| | | { |
| | | "ndk": "C:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\ndk\\21.1.6352462", |
| | | "revision": { |
| | | "mMajor": 21, |
| | | "mMinor": 1, |
| | | "mMicro": 6352462, |
| | | "mPreview": 0, |
| | | "mPrecision": "MICRO", |
| | | "mPreviewSeparator": " " |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "ndkDirProperty": "C:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\ndk\\21.1.6352462", |
| | | "sdkFolder": "C:\\Users\\admin\\AppData\\Local\\Android\\Sdk", |
| | | "sideBySideNdkFolderNames": [ |
| | | "21.1.6352462", |
| | | "22.0.7026061" |
| | | ] |
| | | } |
New file |
| | |
| | | #指定需要CMAKE的最小版本 |
| | | cmake_minimum_required(VERSION 3.4.1) |
| | | |
| | | |
| | | #C 的编译选项是 CMAKE_C_FLAGS |
| | | # 指定编译参数,可选 |
| | | SET(CMAKE_CXX_FLAGS "-Wno-error=format-security -Wno-error=pointer-sign") |
| | | |
| | | #设置生成的so动态库最后输出的路径 |
| | | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}) |
| | | |
| | | #设置头文件搜索路径(和此txt同个路径的头文件无需设置),可选 |
| | | #INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/common) |
| | | |
| | | #指定用到的系统库或者NDK库或者第三方库的搜索路径,可选。 |
| | | #LINK_DIRECTORIES(/usr/local/lib) |
| | | |
| | | |
| | | add_library( native-lib |
| | | SHARED |
| | | src/main/cpp/native-lib.cpp ) |
| | | |
| | | target_link_libraries( native-lib |
| | | log ) |
New file |
| | |
| | | apply plugin: 'com.android.application' |
| | | |
| | | android { |
| | | compileSdkVersion 28 |
| | | buildToolsVersion "28.0.3" |
| | | defaultConfig { |
| | | applicationId "com.hxsmart.zbh.singlelib" |
| | | minSdkVersion 19 |
| | | targetSdkVersion 28 |
| | | versionCode 1 |
| | | versionName "1.0" |
| | | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" |
| | | externalNativeBuild { |
| | | cmake { |
| | | cppFlags "" |
| | | abiFilters 'armeabi','armeabi-v7a' |
| | | } |
| | | } |
| | | } |
| | | buildTypes { |
| | | release { |
| | | minifyEnabled false |
| | | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' |
| | | } |
| | | } |
| | | externalNativeBuild { |
| | | cmake { |
| | | path "CMakeLists.txt" |
| | | } |
| | | } |
| | | } |
| | | |
| | | dependencies { |
| | | compile fileTree(dir: 'libs', include: ['*.jar']) |
| | | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { |
| | | exclude group: 'com.android.support', module: 'support-annotations' |
| | | }) |
| | | compile 'com.android.support:appcompat-v7:28.0.3' |
| | | testCompile 'junit:junit:4.12' |
| | | } |
New file |
| | |
| | | # Add project specific ProGuard rules here. |
| | | # By default, the flags in this file are appended to flags specified |
| | | # in /Development/as_SDK/sdk/tools/proguard/proguard-android.txt |
| | | # You can edit the include path and order by changing the proguardFiles |
| | | # directive in build.gradle. |
| | | # |
| | | # For more details, see |
| | | # http://developer.android.com/guide/developing/tools/proguard.html |
| | | |
| | | # Add any project specific keep options here: |
| | | |
| | | # If your project uses WebView with JS, uncomment the following |
| | | # and specify the fully qualified class name to the JavaScript interface |
| | | # class: |
| | | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { |
| | | # public *; |
| | | #} |
New file |
| | |
| | | package com.hxsmart.zbh.singlelib; |
| | | |
| | | import android.content.Context; |
| | | import android.support.test.InstrumentationRegistry; |
| | | import android.support.test.runner.AndroidJUnit4; |
| | | |
| | | import org.junit.Test; |
| | | import org.junit.runner.RunWith; |
| | | |
| | | import static org.junit.Assert.*; |
| | | |
| | | /** |
| | | * Instrumentation test, which will execute on an Android device. |
| | | * |
| | | * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> |
| | | */ |
| | | @RunWith(AndroidJUnit4.class) |
| | | public class ExampleInstrumentedTest { |
| | | @Test |
| | | public void useAppContext() throws Exception { |
| | | // Context of the app under test. |
| | | Context appContext = InstrumentationRegistry.getTargetContext(); |
| | | |
| | | assertEquals("com.hxsmart.zbh.singlelib", appContext.getPackageName()); |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| | | package="com.hxsmart.zbh.singlelib"> |
| | | |
| | | <application |
| | | android:allowBackup="true" |
| | | android:icon="@mipmap/ic_launcher" |
| | | android:label="@string/app_name" |
| | | android:supportsRtl="true" |
| | | android:theme="@style/AppTheme"> |
| | | <activity android:name=".MainActivity"> |
| | | <intent-filter> |
| | | <action android:name="android.intent.action.MAIN" /> |
| | | |
| | | <category android:name="android.intent.category.LAUNCHER" /> |
| | | </intent-filter> |
| | | </activity> |
| | | </application> |
| | | |
| | | </manifest> |
New file |
| | |
| | | #include <jni.h> |
| | | #include <string> |
| | | |
| | | extern "C" |
| | | jstring |
| | | Java_com_hxsmart_zbh_singlelib_MainActivity_stringFromJNI( |
| | | JNIEnv *env, |
| | | jobject /* this */) { |
| | | std::string hello = "Hello from C++"; |
| | | return env->NewStringUTF(hello.c_str()); |
| | | } |
New file |
| | |
| | | package com.hxsmart.zbh.singlelib; |
| | | |
| | | import android.app.Activity; |
| | | import android.os.Bundle; |
| | | import android.widget.TextView; |
| | | |
| | | public class MainActivity extends Activity { |
| | | |
| | | // Used to load the 'native-lib' library on application startup. |
| | | static { |
| | | System.loadLibrary("native-lib"); |
| | | } |
| | | |
| | | @Override |
| | | protected void onCreate(Bundle savedInstanceState) { |
| | | super.onCreate(savedInstanceState); |
| | | setContentView(R.layout.activity_main); |
| | | |
| | | // Example of a call to a native method |
| | | TextView tv = (TextView) findViewById(R.id.sample_text); |
| | | tv.setText(stringFromJNI()); |
| | | } |
| | | |
| | | /** |
| | | * A native method that is implemented by the 'native-lib' native library, |
| | | * which is packaged with this application. |
| | | */ |
| | | public native String stringFromJNI(); |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | xmlns:tools="http://schemas.android.com/tools" |
| | | android:id="@+id/activity_main" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | android:paddingBottom="@dimen/activity_vertical_margin" |
| | | android:paddingLeft="@dimen/activity_horizontal_margin" |
| | | android:paddingRight="@dimen/activity_horizontal_margin" |
| | | android:paddingTop="@dimen/activity_vertical_margin" |
| | | tools:context="com.hxsmart.zbh.singlelib.MainActivity"> |
| | | |
| | | <TextView |
| | | android:id="@+id/sample_text" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:text="Hello World!" /> |
| | | </RelativeLayout> |
New file |
| | |
| | | <resources> |
| | | <!-- Example customization of dimensions originally defined in res/values/dimens.xml |
| | | (such as screen margins) for screens with more than 820dp of available width. This |
| | | would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). --> |
| | | <dimen name="activity_horizontal_margin">64dp</dimen> |
| | | </resources> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <resources> |
| | | <color name="colorPrimary">#3F51B5</color> |
| | | <color name="colorPrimaryDark">#303F9F</color> |
| | | <color name="colorAccent">#FF4081</color> |
| | | </resources> |
New file |
| | |
| | | <resources> |
| | | <!-- Default screen margins, per the Android Design guidelines. --> |
| | | <dimen name="activity_horizontal_margin">16dp</dimen> |
| | | <dimen name="activity_vertical_margin">16dp</dimen> |
| | | </resources> |
New file |
| | |
| | | <resources> |
| | | <string name="app_name">singleLib</string> |
| | | </resources> |
New file |
| | |
| | | <resources> |
| | | |
| | | <!-- Base application theme. --> |
| | | <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> |
| | | <!-- Customize your theme here. --> |
| | | <item name="colorPrimary">@color/colorPrimary</item> |
| | | <item name="colorPrimaryDark">@color/colorPrimaryDark</item> |
| | | <item name="colorAccent">@color/colorAccent</item> |
| | | </style> |
| | | |
| | | </resources> |
New file |
| | |
| | | package com.hxsmart.zbh.singlelib; |
| | | |
| | | import org.junit.Test; |
| | | |
| | | import static org.junit.Assert.*; |
| | | |
| | | /** |
| | | * Example local unit test, which will execute on the development machine (host). |
| | | * |
| | | * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> |
| | | */ |
| | | public class ExampleUnitTest { |
| | | @Test |
| | | public void addition_isCorrect() throws Exception { |
| | | assertEquals(4, 2 + 2); |
| | | } |
| | | } |
New file |
| | |
| | | // Top-level build file where you can add configuration options common to all sub-projects/modules. |
| | | |
| | | buildscript { |
| | | repositories { |
| | | jcenter() |
| | | google() |
| | | } |
| | | dependencies { |
| | | classpath 'com.android.tools.build:gradle:3.4.2' |
| | | |
| | | // NOTE: Do not place your application dependencies here; they belong |
| | | // in the individual module build.gradle files |
| | | } |
| | | } |
| | | |
| | | allprojects { |
| | | repositories { |
| | | jcenter() |
| | | } |
| | | } |
| | | |
| | | task clean(type: Delete) { |
| | | delete rootProject.buildDir |
| | | } |
New file |
| | |
| | | # Project-wide Gradle settings. |
| | | |
| | | # IDE (e.g. Android Studio) users: |
| | | # Gradle settings configured through the IDE *will override* |
| | | # any settings specified in this file. |
| | | |
| | | # For more details on how to configure your build environment visit |
| | | # http://www.gradle.org/docs/current/userguide/build_environment.html |
| | | |
| | | # Specifies the JVM arguments used for the daemon process. |
| | | # The setting is particularly useful for tweaking memory settings. |
| | | org.gradle.jvmargs=-Xmx1536m |
| | | |
| | | # When configured, Gradle will run in incubating parallel mode. |
| | | # This option should only be used with decoupled projects. More details, visit |
| | | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects |
| | | # org.gradle.parallel=true |
New file |
| | |
| | | #Mon Jan 04 15:07:01 GMT+08:00 2021 |
| | | distributionBase=GRADLE_USER_HOME |
| | | distributionPath=wrapper/dists |
| | | zipStoreBase=GRADLE_USER_HOME |
| | | zipStorePath=wrapper/dists |
| | | distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip |
New file |
| | |
| | | #!/usr/bin/env bash |
| | | |
| | | ############################################################################## |
| | | ## |
| | | ## Gradle start up script for UN*X |
| | | ## |
| | | ############################################################################## |
| | | |
| | | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. |
| | | DEFAULT_JVM_OPTS="" |
| | | |
| | | APP_NAME="Gradle" |
| | | APP_BASE_NAME=`basename "$0"` |
| | | |
| | | # Use the maximum available, or set MAX_FD != -1 to use that value. |
| | | MAX_FD="maximum" |
| | | |
| | | warn ( ) { |
| | | echo "$*" |
| | | } |
| | | |
| | | die ( ) { |
| | | echo |
| | | echo "$*" |
| | | echo |
| | | exit 1 |
| | | } |
| | | |
| | | # OS specific support (must be 'true' or 'false'). |
| | | cygwin=false |
| | | msys=false |
| | | darwin=false |
| | | case "`uname`" in |
| | | CYGWIN* ) |
| | | cygwin=true |
| | | ;; |
| | | Darwin* ) |
| | | darwin=true |
| | | ;; |
| | | MINGW* ) |
| | | msys=true |
| | | ;; |
| | | esac |
| | | |
| | | # Attempt to set APP_HOME |
| | | # Resolve links: $0 may be a link |
| | | PRG="$0" |
| | | # Need this for relative symlinks. |
| | | while [ -h "$PRG" ] ; do |
| | | ls=`ls -ld "$PRG"` |
| | | link=`expr "$ls" : '.*-> \(.*\)$'` |
| | | if expr "$link" : '/.*' > /dev/null; then |
| | | PRG="$link" |
| | | else |
| | | PRG=`dirname "$PRG"`"/$link" |
| | | fi |
| | | done |
| | | SAVED="`pwd`" |
| | | cd "`dirname \"$PRG\"`/" >/dev/null |
| | | APP_HOME="`pwd -P`" |
| | | cd "$SAVED" >/dev/null |
| | | |
| | | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar |
| | | |
| | | # Determine the Java command to use to start the JVM. |
| | | if [ -n "$JAVA_HOME" ] ; then |
| | | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then |
| | | # IBM's JDK on AIX uses strange locations for the executables |
| | | JAVACMD="$JAVA_HOME/jre/sh/java" |
| | | else |
| | | JAVACMD="$JAVA_HOME/bin/java" |
| | | fi |
| | | if [ ! -x "$JAVACMD" ] ; then |
| | | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME |
| | | |
| | | Please set the JAVA_HOME variable in your environment to match the |
| | | location of your Java installation." |
| | | fi |
| | | else |
| | | JAVACMD="java" |
| | | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. |
| | | |
| | | Please set the JAVA_HOME variable in your environment to match the |
| | | location of your Java installation." |
| | | fi |
| | | |
| | | # Increase the maximum file descriptors if we can. |
| | | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then |
| | | MAX_FD_LIMIT=`ulimit -H -n` |
| | | if [ $? -eq 0 ] ; then |
| | | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then |
| | | MAX_FD="$MAX_FD_LIMIT" |
| | | fi |
| | | ulimit -n $MAX_FD |
| | | if [ $? -ne 0 ] ; then |
| | | warn "Could not set maximum file descriptor limit: $MAX_FD" |
| | | fi |
| | | else |
| | | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" |
| | | fi |
| | | fi |
| | | |
| | | # For Darwin, add options to specify how the application appears in the dock |
| | | if $darwin; then |
| | | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" |
| | | fi |
| | | |
| | | # For Cygwin, switch paths to Windows format before running java |
| | | if $cygwin ; then |
| | | APP_HOME=`cygpath --path --mixed "$APP_HOME"` |
| | | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` |
| | | JAVACMD=`cygpath --unix "$JAVACMD"` |
| | | |
| | | # We build the pattern for arguments to be converted via cygpath |
| | | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` |
| | | SEP="" |
| | | for dir in $ROOTDIRSRAW ; do |
| | | ROOTDIRS="$ROOTDIRS$SEP$dir" |
| | | SEP="|" |
| | | done |
| | | OURCYGPATTERN="(^($ROOTDIRS))" |
| | | # Add a user-defined pattern to the cygpath arguments |
| | | if [ "$GRADLE_CYGPATTERN" != "" ] ; then |
| | | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" |
| | | fi |
| | | # Now convert the arguments - kludge to limit ourselves to /bin/sh |
| | | i=0 |
| | | for arg in "$@" ; do |
| | | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` |
| | | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option |
| | | |
| | | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition |
| | | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` |
| | | else |
| | | eval `echo args$i`="\"$arg\"" |
| | | fi |
| | | i=$((i+1)) |
| | | done |
| | | case $i in |
| | | (0) set -- ;; |
| | | (1) set -- "$args0" ;; |
| | | (2) set -- "$args0" "$args1" ;; |
| | | (3) set -- "$args0" "$args1" "$args2" ;; |
| | | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; |
| | | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; |
| | | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; |
| | | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; |
| | | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; |
| | | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; |
| | | esac |
| | | fi |
| | | |
| | | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules |
| | | function splitJvmOpts() { |
| | | JVM_OPTS=("$@") |
| | | } |
| | | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS |
| | | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" |
| | | |
| | | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" |
New file |
| | |
| | | @if "%DEBUG%" == "" @echo off |
| | | @rem ########################################################################## |
| | | @rem |
| | | @rem Gradle startup script for Windows |
| | | @rem |
| | | @rem ########################################################################## |
| | | |
| | | @rem Set local scope for the variables with windows NT shell |
| | | if "%OS%"=="Windows_NT" setlocal |
| | | |
| | | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. |
| | | set DEFAULT_JVM_OPTS= |
| | | |
| | | set DIRNAME=%~dp0 |
| | | if "%DIRNAME%" == "" set DIRNAME=. |
| | | set APP_BASE_NAME=%~n0 |
| | | set APP_HOME=%DIRNAME% |
| | | |
| | | @rem Find java.exe |
| | | if defined JAVA_HOME goto findJavaFromJavaHome |
| | | |
| | | set JAVA_EXE=java.exe |
| | | %JAVA_EXE% -version >NUL 2>&1 |
| | | if "%ERRORLEVEL%" == "0" goto init |
| | | |
| | | echo. |
| | | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. |
| | | echo. |
| | | echo Please set the JAVA_HOME variable in your environment to match the |
| | | echo location of your Java installation. |
| | | |
| | | goto fail |
| | | |
| | | :findJavaFromJavaHome |
| | | set JAVA_HOME=%JAVA_HOME:"=% |
| | | set JAVA_EXE=%JAVA_HOME%/bin/java.exe |
| | | |
| | | if exist "%JAVA_EXE%" goto init |
| | | |
| | | echo. |
| | | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% |
| | | echo. |
| | | echo Please set the JAVA_HOME variable in your environment to match the |
| | | echo location of your Java installation. |
| | | |
| | | goto fail |
| | | |
| | | :init |
| | | @rem Get command-line arguments, handling Windowz variants |
| | | |
| | | if not "%OS%" == "Windows_NT" goto win9xME_args |
| | | if "%@eval[2+2]" == "4" goto 4NT_args |
| | | |
| | | :win9xME_args |
| | | @rem Slurp the command line arguments. |
| | | set CMD_LINE_ARGS= |
| | | set _SKIP=2 |
| | | |
| | | :win9xME_args_slurp |
| | | if "x%~1" == "x" goto execute |
| | | |
| | | set CMD_LINE_ARGS=%* |
| | | goto execute |
| | | |
| | | :4NT_args |
| | | @rem Get arguments from the 4NT Shell from JP Software |
| | | set CMD_LINE_ARGS=%$ |
| | | |
| | | :execute |
| | | @rem Setup the command line |
| | | |
| | | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar |
| | | |
| | | @rem Execute Gradle |
| | | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% |
| | | |
| | | :end |
| | | @rem End local scope for the variables with windows NT shell |
| | | if "%ERRORLEVEL%"=="0" goto mainEnd |
| | | |
| | | :fail |
| | | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of |
| | | rem the _cmd.exe /c_ return code! |
| | | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 |
| | | exit /b 1 |
| | | |
| | | :mainEnd |
| | | if "%OS%"=="Windows_NT" endlocal |
| | | |
| | | :omega |
New file |
| | |
| | | { |
| | | "allAbis": [ |
| | | "armeabi", |
| | | "armeabi-v7a" |
| | | ], |
| | | "validAbis": [ |
| | | "ARMEABI", |
| | | "ARMEABI_V7A" |
| | | ] |
| | | } |
New file |
| | |
| | | { |
| | | "ndkHandlerSupportedAbis": [ |
| | | "ARMEABI_V7A", |
| | | "ARM64_V8A", |
| | | "X86", |
| | | "X86_64" |
| | | ], |
| | | "ndkHandlerDefaultAbis": [ |
| | | "ARMEABI_V7A", |
| | | "ARM64_V8A", |
| | | "X86", |
| | | "X86_64" |
| | | ], |
| | | "externalNativeBuildAbiFilters": [ |
| | | "armeabi-v7a", |
| | | "armeabi" |
| | | ], |
| | | "ndkConfigAbiFilters": [], |
| | | "splitsFilterAbis": [], |
| | | "ideBuildOnlyTargetAbi": true |
| | | } |
New file |
| | |
| | | # This is the CMakeCache file. |
| | | # For build in directory: f:/HDL/Demo/singleLib/singleLib/multilibs/.cxx/cmake/debug/armeabi |
| | | # It was generated by CMake: C:/Users/admin/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/bin/cmake.exe |
| | | # You can edit this file to change values found and used by cmake. |
| | | # If you do not want to change any of the values, simply exit the editor. |
| | | # If you do want to change a value, simply edit, save, and exit the editor. |
| | | # The syntax for the file is as follows: |
| | | # KEY:TYPE=VALUE |
| | | # KEY is the name of a variable in the cache. |
| | | # TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. |
| | | # VALUE is the current value for the KEY. |
| | | |
| | | ######################## |
| | | # EXTERNAL cache entries |
| | | ######################## |
| | | |
| | | //No help, variable specified on the command line. |
| | | ANDROID_ABI:UNINITIALIZED=armeabi |
| | | |
| | | //No help, variable specified on the command line. |
| | | ANDROID_NDK:UNINITIALIZED=C:\Users\admin\AppData\Local\Android\Sdk\ndk\21.1.6352462 |
| | | |
| | | //No help, variable specified on the command line. |
| | | ANDROID_PLATFORM:UNINITIALIZED=android-19 |
| | | |
| | | //No help, variable specified on the command line. |
| | | CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=armeabi |
| | | |
| | | //No help, variable specified on the command line. |
| | | CMAKE_ANDROID_NDK:UNINITIALIZED=C:\Users\admin\AppData\Local\Android\Sdk\ndk\21.1.6352462 |
| | | |
| | | //No help, variable specified on the command line. |
| | | CMAKE_BUILD_TYPE:UNINITIALIZED=Debug |
| | | |
| | | //No help, variable specified on the command line. |
| | | CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON |
| | | |
| | | //No help, variable specified on the command line. |
| | | CMAKE_FIND_ROOT_PATH:UNINITIALIZED=F:\HDL\Demo\singleLib\singleLib\multilibs\.cxx\cmake\debug\prefab\armeabi\prefab |
| | | |
| | | //No help, variable specified on the command line. |
| | | CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=F:\HDL\Demo\singleLib\singleLib\multilibs\build\intermediates\cmake\debug\obj\armeabi |
| | | |
| | | //No help, variable specified on the command line. |
| | | CMAKE_MAKE_PROGRAM:UNINITIALIZED=C:\Users\admin\AppData\Local\Android\Sdk\cmake\3.10.2.4988404\bin\ninja.exe |
| | | |
| | | //Value Computed by CMake |
| | | CMAKE_PROJECT_NAME:STATIC=Project |
| | | |
| | | //No help, variable specified on the command line. |
| | | CMAKE_SYSTEM_NAME:UNINITIALIZED=Android |
| | | |
| | | //No help, variable specified on the command line. |
| | | CMAKE_SYSTEM_VERSION:UNINITIALIZED=19 |
| | | |
| | | //No help, variable specified on the command line. |
| | | CMAKE_TOOLCHAIN_FILE:UNINITIALIZED=C:\Users\admin\AppData\Local\Android\Sdk\ndk\21.1.6352462\build\cmake\android.toolchain.cmake |
| | | |
| | | //Value Computed by CMake |
| | | Project_BINARY_DIR:STATIC=F:/HDL/Demo/singleLib/singleLib/multilibs/.cxx/cmake/debug/armeabi |
| | | |
| | | //Value Computed by CMake |
| | | Project_SOURCE_DIR:STATIC=F:/HDL/Demo/singleLib/singleLib/multilibs/src/main/cpp |
| | | |
| | | |
| | | ######################## |
| | | # INTERNAL cache entries |
| | | ######################## |
| | | |
| | | //This is the directory where this CMakeCache.txt was created |
| | | CMAKE_CACHEFILE_DIR:INTERNAL=f:/HDL/Demo/singleLib/singleLib/multilibs/.cxx/cmake/debug/armeabi |
| | | //Major version of cmake used to create the current loaded cache |
| | | CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 |
| | | //Minor version of cmake used to create the current loaded cache |
| | | CMAKE_CACHE_MINOR_VERSION:INTERNAL=10 |
| | | //Patch version of cmake used to create the current loaded cache |
| | | CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 |
| | | //Path to CMake executable. |
| | | CMAKE_COMMAND:INTERNAL=C:/Users/admin/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/bin/cmake.exe |
| | | //Path to cpack program executable. |
| | | CMAKE_CPACK_COMMAND:INTERNAL=C:/Users/admin/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/bin/cpack.exe |
| | | //Path to ctest program executable. |
| | | CMAKE_CTEST_COMMAND:INTERNAL=C:/Users/admin/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/bin/ctest.exe |
| | | //Name of external makefile project generator. |
| | | CMAKE_EXTRA_GENERATOR:INTERNAL= |
| | | //Name of generator. |
| | | CMAKE_GENERATOR:INTERNAL=Ninja |
| | | //Name of generator platform. |
| | | CMAKE_GENERATOR_PLATFORM:INTERNAL= |
| | | //Name of generator toolset. |
| | | CMAKE_GENERATOR_TOOLSET:INTERNAL= |
| | | //Source directory with the top level CMakeLists.txt file for this |
| | | // project |
| | | CMAKE_HOME_DIRECTORY:INTERNAL=F:/HDL/Demo/singleLib/singleLib/multilibs/src/main/cpp |
| | | //number of local generators |
| | | CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 |
| | | //Platform information initialized |
| | | CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 |
| | | //Path to CMake installation. |
| | | CMAKE_ROOT:INTERNAL=C:/Users/admin/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10 |
| | | |
New file |
| | |
| | | # This file is generated by cmake for dependency checking of the CMakeCache.txt file |
New file |
| | |
| | | CMAKE SERVER: |
| | | |
| | | CMAKE SERVER: [== "CMake Server" ==[ |
| | | |
| | | CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} |
| | | |
| | | CMAKE SERVER: ]== "CMake Server" ==] |
| | | |
| | | CMAKE SERVER: [== "CMake Server" ==[ |
| | | |
| | | CMAKE SERVER: { |
| | | "type": "handshake", |
| | | "cookie": "gradle-cmake-cookie", |
| | | "protocolVersion": { |
| | | "isExperimental": true, |
| | | "major": 1, |
| | | "minor": 1 |
| | | }, |
| | | "sourceDirectory": "F:/HDL/Demo/singleLib/singleLib/multilibs/src/main/cpp", |
| | | "buildDirectory": "F:/HDL/Demo/singleLib/singleLib/multilibs/.cxx/cmake/debug/armeabi", |
| | | "generator": "Ninja" |
| | | } |
| | | |
| | | CMAKE SERVER: ]== "CMake Server" ==] |
| | | |
| | | CMAKE SERVER: |
| | | |
| | | CMAKE SERVER: [== "CMake Server" ==[ |
| | | |
| | | CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} |
| | | |
| | | CMAKE SERVER: ]== "CMake Server" ==] |
| | | |
| | | CMAKE SERVER: [== "CMake Server" ==[ |
| | | |
| | | CMAKE SERVER: { |
| | | "type": "configure", |
| | | "cacheArguments": [ |
| | | "", |
| | | "-DCMAKE_FIND_ROOT_PATH\u003dF:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\.cxx\\cmake\\debug\\prefab\\armeabi\\prefab", |
| | | "-DCMAKE_BUILD_TYPE\u003dDebug", |
| | | "-DCMAKE_TOOLCHAIN_FILE\u003dC:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\ndk\\21.1.6352462\\build\\cmake\\android.toolchain.cmake", |
| | | "-DANDROID_ABI\u003darmeabi", |
| | | "-DANDROID_NDK\u003dC:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\ndk\\21.1.6352462", |
| | | "-DANDROID_PLATFORM\u003dandroid-19", |
| | | "-DCMAKE_ANDROID_ARCH_ABI\u003darmeabi", |
| | | "-DCMAKE_ANDROID_NDK\u003dC:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\ndk\\21.1.6352462", |
| | | "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", |
| | | "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003dF:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\build\\intermediates\\cmake\\debug\\obj\\armeabi", |
| | | "-DCMAKE_MAKE_PROGRAM\u003dC:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\cmake\\3.10.2.4988404\\bin\\ninja.exe", |
| | | "-DCMAKE_SYSTEM_NAME\u003dAndroid", |
| | | "-DCMAKE_SYSTEM_VERSION\u003d19" |
| | | ] |
| | | } |
| | | |
| | | CMAKE SERVER: ]== "CMake Server" ==] |
| | | |
| | | CMAKE SERVER: |
| | | |
| | | CMAKE SERVER: [== "CMake Server" ==[ |
| | | |
| | | CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Error at C:/Users/admin/AppData/Local/Android/Sdk/ndk/21.1.6352462/build/cmake/android.toolchain.cmake:174 (message):\n armeabi is no longer supported. Use armeabi-v7a.\nCall Stack (most recent call first):\n C:/Users/admin/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\n CMakeLists.txt\n\n","title":"Error","type":"message"} |
| | | |
| | | CMAKE SERVER: ]== "CMake Server" ==] |
| | | |
| | | CMAKE SERVER: CMake Error at C:/Users/admin/AppData/Local/Android/Sdk/ndk/21.1.6352462/build/cmake/android.toolchain.cmake:174 (message): |
| | | armeabi is no longer supported. Use armeabi-v7a. |
| | | Call Stack (most recent call first): |
| | | C:/Users/admin/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) |
| | | CMakeLists.txt |
| | | |
| | | CMAKE SERVER: CMake Error at C:/Users/admin/AppData/Local/Android/Sdk/ndk/21.1.6352462/build/cmake/android.toolchain.cmake:174 (message): |
| | | armeabi is no longer supported. Use armeabi-v7a. |
| | | Call Stack (most recent call first): |
| | | C:/Users/admin/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) |
| | | CMakeLists.txt |
| | | |
| | | CMAKE SERVER: |
| | | |
| | | CMAKE SERVER: [== "CMake Server" ==[ |
| | | |
| | | CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage","title":"Error","type":"message"} |
| | | |
| | | CMAKE SERVER: ]== "CMake Server" ==] |
| | | |
| | | CMAKE SERVER: CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage |
| | | CMAKE SERVER: CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage |
| | | CMAKE SERVER: |
| | | |
| | | CMAKE SERVER: [== "CMake Server" ==[ |
| | | |
| | | CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage","title":"Error","type":"message"} |
| | | |
| | | CMAKE SERVER: ]== "CMake Server" ==] |
| | | |
| | | CMAKE SERVER: CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage |
| | | CMAKE SERVER: CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage |
| | | CMAKE SERVER: |
| | | |
| | | CMAKE SERVER: [== "CMake Server" ==[ |
| | | |
| | | CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} |
| | | |
| | | CMAKE SERVER: ]== "CMake Server" ==] |
| | | |
| | | CMAKE SERVER: |
| | | |
| | | CMAKE SERVER: [== "CMake Server" ==[ |
| | | |
| | | CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring incomplete, errors occurred!","type":"message"} |
| | | |
| | | CMAKE SERVER: ]== "CMake Server" ==] |
| | | |
| | | CMAKE SERVER: Configuring incomplete, errors occurred! |
| | | CMAKE SERVER: Configuring incomplete, errors occurred! |
| | | CMAKE SERVER: |
| | | |
| | | CMAKE SERVER: [== "CMake Server" ==[ |
| | | |
| | | CMAKE SERVER: {"cookie":"","errorMessage":"Configuration failed.","inReplyTo":"configure","type":"error"} |
| | | |
| | | CMAKE SERVER: ]== "CMake Server" ==] |
| | | |
| | | CMAKE SERVER: Configuration failed. |
New file |
| | |
| | | [ |
| | | { |
| | | "level": "INFO", |
| | | "message": "Start JSON generation. Platform version: 19 min SDK version: armeabi", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "Trying to locate CMake in local SDK repository.", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "- CMake found in SDK at \u0027C:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\cmake\\3.10.2.4988404\u0027 had version \u00273.10.2\u0027", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "CMake \u00273.6.0\u0027 found in SDK did not match requested version \u00273.10.2\u0027.", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "rebuilding JSON F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\.cxx\\cmake\\debug\\armeabi\\android_gradle_build.json due to:", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "- expected json F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\.cxx\\cmake\\debug\\armeabi\\android_gradle_build.json file is not present, will remove stale json folder", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "- missing previous command file F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\.cxx\\cmake\\debug\\armeabi\\build_command.txt, will remove stale json folder", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "- command changed from previous, will remove stale json folder", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "created folder \u0027F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\.cxx\\cmake\\debug\\armeabi\u0027", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "executing cmake Executable : C:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\cmake\\3.10.2.4988404\\bin\\cmake.exe\narguments : \n-HF:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\n-DCMAKE_FIND_ROOT_PATH\u003dF:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\.cxx\\cmake\\debug\\prefab\\armeabi\\prefab\n-DCMAKE_BUILD_TYPE\u003dDebug\n-DCMAKE_TOOLCHAIN_FILE\u003dC:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\ndk\\21.1.6352462\\build\\cmake\\android.toolchain.cmake\n-DANDROID_ABI\u003darmeabi\n-DANDROID_NDK\u003dC:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\ndk\\21.1.6352462\n-DANDROID_PLATFORM\u003dandroid-19\n-DCMAKE_ANDROID_ARCH_ABI\u003darmeabi\n-DCMAKE_ANDROID_NDK\u003dC:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\ndk\\21.1.6352462\n-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON\n-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003dF:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\build\\intermediates\\cmake\\debug\\obj\\armeabi\n-DCMAKE_MAKE_PROGRAM\u003dC:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\cmake\\3.10.2.4988404\\bin\\ninja.exe\n-DCMAKE_SYSTEM_NAME\u003dAndroid\n-DCMAKE_SYSTEM_VERSION\u003d19\n-BF:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\.cxx\\cmake\\debug\\armeabi\n-GNinja\njvmArgs : \n\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "[\u003d\u003d \"CMake Server\" \u003d\u003d[\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "{\"supportedProtocolVersions\":[{\"isExperimental\":true,\"major\":1,\"minor\":1}],\"type\":\"hello\"}\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "]\u003d\u003d \"CMake Server\" \u003d\u003d]\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "{\n \"type\": \"handshake\",\n \"cookie\": \"gradle-cmake-cookie\",\n \"protocolVersion\": {\n \"isExperimental\": true,\n \"major\": 1,\n \"minor\": 1\n },\n \"sourceDirectory\": \"F:/HDL/Demo/singleLib/singleLib/multilibs/src/main/cpp\",\n \"buildDirectory\": \"F:/HDL/Demo/singleLib/singleLib/multilibs/.cxx/cmake/debug/armeabi\",\n \"generator\": \"Ninja\"\n}\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "{\"cookie\":\"gradle-cmake-cookie\",\"inReplyTo\":\"handshake\",\"type\":\"reply\"}\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "{\n \"type\": \"configure\",\n \"cacheArguments\": [\n \"\",\n \"-DCMAKE_FIND_ROOT_PATH\\u003dF:\\\\HDL\\\\Demo\\\\singleLib\\\\singleLib\\\\multilibs\\\\.cxx\\\\cmake\\\\debug\\\\prefab\\\\armeabi\\\\prefab\",\n \"-DCMAKE_BUILD_TYPE\\u003dDebug\",\n \"-DCMAKE_TOOLCHAIN_FILE\\u003dC:\\\\Users\\\\admin\\\\AppData\\\\Local\\\\Android\\\\Sdk\\\\ndk\\\\21.1.6352462\\\\build\\\\cmake\\\\android.toolchain.cmake\",\n \"-DANDROID_ABI\\u003darmeabi\",\n \"-DANDROID_NDK\\u003dC:\\\\Users\\\\admin\\\\AppData\\\\Local\\\\Android\\\\Sdk\\\\ndk\\\\21.1.6352462\",\n \"-DANDROID_PLATFORM\\u003dandroid-19\",\n \"-DCMAKE_ANDROID_ARCH_ABI\\u003darmeabi\",\n \"-DCMAKE_ANDROID_NDK\\u003dC:\\\\Users\\\\admin\\\\AppData\\\\Local\\\\Android\\\\Sdk\\\\ndk\\\\21.1.6352462\",\n \"-DCMAKE_EXPORT_COMPILE_COMMANDS\\u003dON\",\n \"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\\u003dF:\\\\HDL\\\\Demo\\\\singleLib\\\\singleLib\\\\multilibs\\\\build\\\\intermediates\\\\cmake\\\\debug\\\\obj\\\\armeabi\",\n \"-DCMAKE_MAKE_PROGRAM\\u003dC:\\\\Users\\\\admin\\\\AppData\\\\Local\\\\Android\\\\Sdk\\\\cmake\\\\3.10.2.4988404\\\\bin\\\\ninja.exe\",\n \"-DCMAKE_SYSTEM_NAME\\u003dAndroid\",\n \"-DCMAKE_SYSTEM_VERSION\\u003d19\"\n ]\n}\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "{\"cookie\":\"\",\"inReplyTo\":\"configure\",\"message\":\"CMake Error at C:/Users/admin/AppData/Local/Android/Sdk/ndk/21.1.6352462/build/cmake/android.toolchain.cmake:174 (message):\\n armeabi is no longer supported. Use armeabi-v7a.\\nCall Stack (most recent call first):\\n C:/Users/admin/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\\n CMakeLists.txt\\n\\n\",\"title\":\"Error\",\"type\":\"message\"}\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "ERROR", |
| | | "message": "CMake Error at C:/Users/admin/AppData/Local/Android/Sdk/ndk/21.1.6352462/build/cmake/android.toolchain.cmake:174 (message):\r\n armeabi is no longer supported. Use armeabi-v7a.\r\nCall Stack (most recent call first):\r\n C:/Users/admin/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\r\n CMakeLists.txt\r\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "{\"cookie\":\"\",\"inReplyTo\":\"configure\",\"message\":\"CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage\",\"title\":\"Error\",\"type\":\"message\"}\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "ERROR", |
| | | "message": "CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "{\"cookie\":\"\",\"inReplyTo\":\"configure\",\"message\":\"CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage\",\"title\":\"Error\",\"type\":\"message\"}\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "ERROR", |
| | | "message": "CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "{\"cookie\":\"\",\"inReplyTo\":\"configure\",\"progressCurrent\":1000,\"progressMaximum\":1000,\"progressMessage\":\"Configuring\",\"progressMinimum\":0,\"type\":\"progress\"}\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "{\"cookie\":\"\",\"inReplyTo\":\"configure\",\"message\":\"Configuring incomplete, errors occurred!\",\"type\":\"message\"}\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "Configuring incomplete, errors occurred!", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "{\"cookie\":\"\",\"errorMessage\":\"Configuration failed.\",\"inReplyTo\":\"configure\",\"type\":\"error\"}\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "ERROR", |
| | | "message": "Configuration failed.", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | }, |
| | | { |
| | | "level": "INFO", |
| | | "message": "JSON generation completed with problem. Exception: com.android.ide.common.process.ProcessException: Error configuring CMake server (C:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\cmake\\3.10.2.4988404\\bin).\r\nCMake Error at C:/Users/admin/AppData/Local/Android/Sdk/ndk/21.1.6352462/build/cmake/android.toolchain.cmake:174 (message):\n armeabi is no longer supported. Use armeabi-v7a.\nCall Stack (most recent call first):\n C:/Users/admin/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\n CMakeLists.txt\n\n\nCMake Error: CMAKE_C_COMPILER not set, after EnableLanguage\nCMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage\nConfiguring incomplete, errors occurred!\n", |
| | | "file": "F:\\HDL\\Demo\\singleLib\\singleLib\\multilibs\\src\\main\\cpp\\CMakeLists.txt", |
| | | "tag": "debug|armeabi" |
| | | } |
| | | ] |
New file |
| | |
| | | apply plugin: 'com.android.application' |
| | | |
| | | android { |
| | | compileSdkVersion 28 |
| | | buildToolsVersion "28.0.3" |
| | | |
| | | defaultConfig { |
| | | applicationId "com.hxsmart.zbh.multilibs" |
| | | minSdkVersion 19 |
| | | targetSdkVersion 28 |
| | | versionCode 1 |
| | | versionName "1.0" |
| | | |
| | | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" |
| | | |
| | | externalNativeBuild { |
| | | cmake { |
| | | cppFlags "" |
| | | abiFilters 'armeabi','armeabi-v7a' |
| | | } |
| | | } |
| | | |
| | | } |
| | | buildTypes { |
| | | release { |
| | | minifyEnabled false |
| | | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' |
| | | } |
| | | } |
| | | externalNativeBuild { |
| | | cmake { |
| | | path 'src/main/cpp/CMakeLists.txt' |
| | | } |
| | | } |
| | | } |
| | | |
| | | dependencies { |
| | | implementation fileTree(dir: 'libs', include: ['*.jar']) |
| | | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { |
| | | exclude group: 'com.android.support', module: 'support-annotations' |
| | | }) |
| | | implementation 'com.android.support:appcompat-v7:28.0.3' |
| | | testImplementation 'junit:junit:4.12' |
| | | } |
New file |
| | |
| | | # Add project specific ProGuard rules here. |
| | | # By default, the flags in this file are appended to flags specified |
| | | # in /Development/as_SDK/sdk/tools/proguard/proguard-android.txt |
| | | # You can edit the include path and order by changing the proguardFiles |
| | | # directive in build.gradle. |
| | | # |
| | | # For more details, see |
| | | # http://developer.android.com/guide/developing/tools/proguard.html |
| | | |
| | | # Add any project specific keep options here: |
| | | |
| | | # If your project uses WebView with JS, uncomment the following |
| | | # and specify the fully qualified class name to the JavaScript interface |
| | | # class: |
| | | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { |
| | | # public *; |
| | | #} |
New file |
| | |
| | | package com.hxsmart.zbh.multilibs; |
| | | |
| | | import android.content.Context; |
| | | import android.support.test.InstrumentationRegistry; |
| | | import android.support.test.runner.AndroidJUnit4; |
| | | |
| | | import org.junit.Test; |
| | | import org.junit.runner.RunWith; |
| | | |
| | | import static org.junit.Assert.*; |
| | | |
| | | /** |
| | | * Instrumentation test, which will execute on an Android device. |
| | | * |
| | | * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> |
| | | */ |
| | | @RunWith(AndroidJUnit4.class) |
| | | public class ExampleInstrumentedTest { |
| | | @Test |
| | | public void useAppContext() throws Exception { |
| | | // Context of the app under test. |
| | | Context appContext = InstrumentationRegistry.getTargetContext(); |
| | | |
| | | assertEquals("com.hxsmart.zbh.multilibs", appContext.getPackageName()); |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| | | package="com.hxsmart.zbh.multilibs"> |
| | | |
| | | <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" |
| | | android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> |
| | | <activity android:name=".MainActivity"> |
| | | <intent-filter> |
| | | <action android:name="android.intent.action.MAIN" /> |
| | | |
| | | <category android:name="android.intent.category.LAUNCHER" /> |
| | | </intent-filter> |
| | | </activity> |
| | | </application> |
| | | |
| | | </manifest> |
New file |
| | |
| | | #指定需要CMAKE的最小版本 |
| | | cmake_minimum_required(VERSION 3.4.1) |
| | | |
| | | |
| | | #C 的编译选项是 CMAKE_C_FLAGS |
| | | # 指定编译参数,可选 |
| | | SET(CMAKE_CXX_FLAGS "-Wno-error=format-security -Wno-error=pointer-sign") |
| | | |
| | | #设置生成的so动态库最后输出的路径 |
| | | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}) |
| | | |
| | | #设置头文件搜索路径(和此txt同个路径的头文件无需设置),可选 |
| | | #INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/common) |
| | | |
| | | #指定用到的系统库或者NDK库或者第三方库的搜索路径,可选。 |
| | | #LINK_DIRECTORIES(/usr/local/lib) |
| | | |
| | | |
| | | #添加子目录,将会调用子目录中的CMakeLists.txt |
| | | ADD_SUBDIRECTORY(one) |
| | | ADD_SUBDIRECTORY(two) |
New file |
| | |
| | | #继承上一层的CMakeLists.txt的变量,也可以在这里重新赋值 |
| | | #C 的编译选项是 CMAKE_C_FLAGS |
| | | # 指定编译参数,可选 |
| | | #SET(CMAKE_CXX_FLAGS "-Wno-error=format-security -Wno-error=pointer-sign") |
| | | |
| | | #生成so动态库 |
| | | ADD_LIBRARY(one-lib SHARED one.cpp) |
| | | |
| | | target_link_libraries(one-lib log) |
New file |
| | |
| | | #include <jni.h> |
| | | #include <string> |
| | | |
| | | extern "C" |
| | | jstring |
| | | Java_com_hxsmart_zbh_multilibs_MainActivity_stringFromJNI1( |
| | | JNIEnv *env, |
| | | jobject /* this */) { |
| | | std::string hello = "Hello from C++ 1111111111111111"; |
| | | return env->NewStringUTF(hello.c_str()); |
| | | } |
New file |
| | |
| | | #继承上一层的CMakeLists.txt的变量,也可以在这里重新赋值 |
| | | #C 的编译选项是 CMAKE_C_FLAGS |
| | | # 指定编译参数,可选 |
| | | #SET(CMAKE_CXX_FLAGS "-Wno-error=format-security -Wno-error=pointer-sign") |
| | | |
| | | #生成so动态库 |
| | | ADD_LIBRARY(two-lib SHARED two.cpp) |
| | | |
| | | target_link_libraries(two-lib log) |
New file |
| | |
| | | #include <jni.h> |
| | | #include <string> |
| | | |
| | | extern "C" |
| | | jstring |
| | | Java_com_hxsmart_zbh_multilibs_MainActivity_stringFromJNI2( |
| | | JNIEnv *env, |
| | | jobject /* this */) { |
| | | std::string hello = "Hello from C++ 2222222222222222"; |
| | | return env->NewStringUTF(hello.c_str()); |
| | | } |
New file |
| | |
| | | package com.hxsmart.zbh.multilibs; |
| | | |
| | | import android.app.Activity; |
| | | import android.os.Bundle; |
| | | import android.util.Log; |
| | | |
| | | public class MainActivity extends Activity { |
| | | |
| | | |
| | | static { |
| | | System.loadLibrary("one-lib"); |
| | | System.loadLibrary("two-lib"); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | protected void onCreate(Bundle savedInstanceState) { |
| | | super.onCreate(savedInstanceState); |
| | | setContentView(R.layout.activity_main); |
| | | |
| | | Log.i("zbh", stringFromJNI1()); |
| | | |
| | | Log.i("zbh", stringFromJNI2()); |
| | | } |
| | | |
| | | public native String stringFromJNI1(); |
| | | |
| | | public native String stringFromJNI2(); |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" |
| | | android:layout_width="match_parent" android:layout_height="match_parent" |
| | | android:paddingBottom="@dimen/activity_vertical_margin" |
| | | android:paddingLeft="@dimen/activity_horizontal_margin" |
| | | android:paddingRight="@dimen/activity_horizontal_margin" |
| | | android:paddingTop="@dimen/activity_vertical_margin" |
| | | tools:context="com.hxsmart.zbh.multilibs.MainActivity"> |
| | | |
| | | <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" |
| | | android:text="Hello World!" /> |
| | | </RelativeLayout> |
New file |
| | |
| | | <resources> |
| | | <!-- Example customization of dimensions originally defined in res/values/dimens.xml |
| | | (such as screen margins) for screens with more than 820dp of available width. This |
| | | would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). --> |
| | | <dimen name="activity_horizontal_margin">64dp</dimen> |
| | | </resources> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <resources> |
| | | <color name="colorPrimary">#3F51B5</color> |
| | | <color name="colorPrimaryDark">#303F9F</color> |
| | | <color name="colorAccent">#FF4081</color> |
| | | </resources> |
New file |
| | |
| | | <resources> |
| | | <!-- Default screen margins, per the Android Design guidelines. --> |
| | | <dimen name="activity_horizontal_margin">16dp</dimen> |
| | | <dimen name="activity_vertical_margin">16dp</dimen> |
| | | </resources> |
New file |
| | |
| | | <resources> |
| | | <string name="app_name">MultiLibs</string> |
| | | </resources> |
New file |
| | |
| | | <resources> |
| | | |
| | | <!-- Base application theme. --> |
| | | <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> |
| | | <!-- Customize your theme here. --> |
| | | <item name="colorPrimary">@color/colorPrimary</item> |
| | | <item name="colorPrimaryDark">@color/colorPrimaryDark</item> |
| | | <item name="colorAccent">@color/colorAccent</item> |
| | | </style> |
| | | |
| | | </resources> |
New file |
| | |
| | | package com.hxsmart.zbh.multilibs; |
| | | |
| | | import org.junit.Test; |
| | | |
| | | import static org.junit.Assert.*; |
| | | |
| | | /** |
| | | * Example local unit test, which will execute on the development machine (host). |
| | | * |
| | | * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> |
| | | */ |
| | | public class ExampleUnitTest { |
| | | @Test |
| | | public void addition_isCorrect() throws Exception { |
| | | assertEquals(4, 2 + 2); |
| | | } |
| | | } |
New file |
| | |
| | | include ':app', ':multilibs' |