diff --git a/yukireflection/build.gradle b/yukireflection/build.gradle index 6a38f29..f7424bd 100644 --- a/yukireflection/build.gradle +++ b/yukireflection/build.gradle @@ -1,31 +1,33 @@ plugins { - id 'java-library' - id 'org.jetbrains.kotlin.jvm' + id 'com.android.library' + id 'org.jetbrains.kotlin.android' id 'maven-publish' id 'signing' } -java { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - sourceSets.main { java.srcDir("src/api/kotlin") } - withJavadocJar() - withSourcesJar() -} +android { + namespace 'com.highcapable.yukireflection' + compileSdk 33 -javadoc { - options.addStringOption("charset", "UTF-8") - if (JavaVersion.current().isJava9Compatible()) options.addBooleanOption('html5', true) -} + defaultConfig { + minSdk 21 + targetSdk 33 -kotlin { - sourceSets.main { kotlin.srcDir("src/api/kotlin") } - sourceSets { all { languageSettings { optIn('com.highcapable.yukireflection.annotation.YukiPrivateApi') } } } -} + consumerProguardFiles 'consumer-rules.pro' + } -tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } kotlinOptions { - jvmTarget = 11 + jvmTarget = '11' freeCompilerArgs = [ '-opt-in=com.highcapable.yukireflection.annotation.YukiPrivateApi', '-Xno-param-assertions', @@ -33,11 +35,27 @@ tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { '-Xno-receiver-assertions' ] } + lintOptions { + checkReleaseBuilds false + } + publishing { + singleVariant('release') { + withSourcesJar() + withJavadocJar() + } + } } +kotlin { sourceSets { all { languageSettings { optIn('com.highcapable.yukireflection.annotation.YukiPrivateApi') } } } } + dependencies { - compileOnly fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.annotation:annotation:1.6.0' + implementation 'androidx.core:core-ktx:1.10.0' + implementation 'androidx.appcompat:appcompat:1.6.1' +} + +tasks.register('androidSourcesJar', Jar) { + archiveClassifier.set('sources') + from android.sourceSets.main.java.srcDirs } group = rootProject.ext.groupId @@ -45,9 +63,10 @@ version = rootProject.ext.apiVersion publishing { publications { - mavenJava(MavenPublication) { + release(MavenPublication) { artifactId = 'api' - from components.java + artifact "$buildDir/outputs/aar/${project.name}-release.aar" + artifact androidSourcesJar pom { name = rootProject.ext.repoName description = rootProject.ext.repoDescription @@ -86,6 +105,4 @@ publishing { } } -signing { - sign(publishing.publications.mavenJava) -} \ No newline at end of file +signing { sign publishing.publications } \ No newline at end of file diff --git a/yukireflection/consumer-rules.pro b/yukireflection/consumer-rules.pro new file mode 100644 index 0000000..e69de29 diff --git a/yukireflection/libs/android-stub.jar b/yukireflection/libs/android-stub.jar deleted file mode 100644 index ba20700..0000000 Binary files a/yukireflection/libs/android-stub.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-activity.jar b/yukireflection/libs/androidx-activity.jar deleted file mode 100644 index c6661be..0000000 Binary files a/yukireflection/libs/androidx-activity.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-appcompat.jar b/yukireflection/libs/androidx-appcompat.jar deleted file mode 100644 index d0c8d7e..0000000 Binary files a/yukireflection/libs/androidx-appcompat.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-core.jar b/yukireflection/libs/androidx-core.jar deleted file mode 100644 index 2c40dd3..0000000 Binary files a/yukireflection/libs/androidx-core.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-customview.jar b/yukireflection/libs/androidx-customview.jar deleted file mode 100644 index dd51769..0000000 Binary files a/yukireflection/libs/androidx-customview.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-drawerlayout.jar b/yukireflection/libs/androidx-drawerlayout.jar deleted file mode 100644 index 2510a5a..0000000 Binary files a/yukireflection/libs/androidx-drawerlayout.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-fragment.jar b/yukireflection/libs/androidx-fragment.jar deleted file mode 100644 index 160357a..0000000 Binary files a/yukireflection/libs/androidx-fragment.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-lifecycle-common.jar b/yukireflection/libs/androidx-lifecycle-common.jar deleted file mode 100644 index da323a9..0000000 Binary files a/yukireflection/libs/androidx-lifecycle-common.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-lifecycle-livedata-core.jar b/yukireflection/libs/androidx-lifecycle-livedata-core.jar deleted file mode 100644 index 44a52c1..0000000 Binary files a/yukireflection/libs/androidx-lifecycle-livedata-core.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-lifecycle-livedata.jar b/yukireflection/libs/androidx-lifecycle-livedata.jar deleted file mode 100644 index d0a17a9..0000000 Binary files a/yukireflection/libs/androidx-lifecycle-livedata.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-lifecycle-runtime.jar b/yukireflection/libs/androidx-lifecycle-runtime.jar deleted file mode 100644 index ef898ee..0000000 Binary files a/yukireflection/libs/androidx-lifecycle-runtime.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-lifecycle-viewmodel-savestate.jar b/yukireflection/libs/androidx-lifecycle-viewmodel-savestate.jar deleted file mode 100644 index ab6eb53..0000000 Binary files a/yukireflection/libs/androidx-lifecycle-viewmodel-savestate.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-lifecycle-viewmodel.jar b/yukireflection/libs/androidx-lifecycle-viewmodel.jar deleted file mode 100644 index 9cade31..0000000 Binary files a/yukireflection/libs/androidx-lifecycle-viewmodel.jar and /dev/null differ diff --git a/yukireflection/libs/androidx-savestate.jar b/yukireflection/libs/androidx-savestate.jar deleted file mode 100644 index 40f58a5..0000000 Binary files a/yukireflection/libs/androidx-savestate.jar and /dev/null differ diff --git a/yukireflection/proguard-rules.pro b/yukireflection/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/yukireflection/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# 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 *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/yukireflection/src/main/AndroidManifest.xml b/yukireflection/src/main/AndroidManifest.xml new file mode 100644 index 0000000..568741e --- /dev/null +++ b/yukireflection/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/YukiReflection.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/YukiReflection.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/YukiReflection.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/YukiReflection.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/annotation/CauseProblemsApi.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/annotation/CauseProblemsApi.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/annotation/CauseProblemsApi.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/annotation/CauseProblemsApi.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/annotation/YukiPrivateApi.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/annotation/YukiPrivateApi.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/annotation/YukiPrivateApi.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/annotation/YukiPrivateApi.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/bean/CurrentClass.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/bean/CurrentClass.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/bean/CurrentClass.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/bean/CurrentClass.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/bean/GenericClass.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/bean/GenericClass.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/bean/GenericClass.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/bean/GenericClass.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/bean/VariousClass.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/bean/VariousClass.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/bean/VariousClass.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/bean/VariousClass.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/factory/ReflectionFactory.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/factory/ReflectionFactory.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/factory/ReflectionFactory.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/factory/ReflectionFactory.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/BaseFinder.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/BaseFinder.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/BaseFinder.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/BaseFinder.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/ClassBaseFinder.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/ClassBaseFinder.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/ClassBaseFinder.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/ClassBaseFinder.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/MemberBaseFinder.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/MemberBaseFinder.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/MemberBaseFinder.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/MemberBaseFinder.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/data/BaseRulesData.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/data/BaseRulesData.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/data/BaseRulesData.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/data/BaseRulesData.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/rules/CountRules.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/rules/CountRules.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/rules/CountRules.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/rules/CountRules.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/rules/ModifierRules.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/rules/ModifierRules.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/rules/ModifierRules.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/rules/ModifierRules.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/rules/NameRules.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/rules/NameRules.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/rules/NameRules.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/rules/NameRules.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/rules/ObjectRules.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/rules/ObjectRules.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/base/rules/ObjectRules.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/base/rules/ObjectRules.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/DexClassFinder.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/DexClassFinder.kt similarity index 97% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/DexClassFinder.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/DexClassFinder.kt index c3ed07c..c8c52cf 100644 --- a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/DexClassFinder.kt +++ b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/DexClassFinder.kt @@ -49,8 +49,10 @@ import com.highcapable.yukireflection.finder.classes.rules.result.MemberRulesRes import com.highcapable.yukireflection.finder.tools.ReflectionTool import com.highcapable.yukireflection.finder.type.factory.ModifierConditions import com.highcapable.yukireflection.finder.type.factory.NameConditions +import com.highcapable.yukireflection.log.yLoggerW import com.highcapable.yukireflection.utils.await import com.highcapable.yukireflection.utils.runBlocking +import com.highcapable.yukireflection.utils.toStackTrace import dalvik.system.BaseDexClassLoader import java.lang.reflect.Constructor import java.lang.reflect.Field @@ -84,13 +86,15 @@ class DexClassFinder @PublishedApi internal constructor( * 通过 [Context] 获取当前 [SharedPreferences] * @param versionName 版本名称 - 默认空 * @param versionCode 版本号 - 默认空 - * @return [SharedPreferences] + * @return [SharedPreferences] or null */ - private fun Context.currentSp(versionName: String? = null, versionCode: Long? = null) = + private fun Context.currentSp(versionName: String? = null, versionCode: Long? = null) = runCatching { + @Suppress("DEPRECATION") getSharedPreferences(packageManager?.getPackageInfo(packageName, PackageManager.GET_META_DATA) ?.let { "${CACHE_FILE_NAME}_${versionName ?: it.versionName}_${versionCode ?: PackageInfoCompat.getLongVersionCode(it)}" } ?: "${CACHE_FILE_NAME}_unknown", Context.MODE_PRIVATE) + }.onFailure { yLoggerW(msg = "Failed to read app's SharedPreferences when using DexClassFinder\n${it.toStackTrace()}") }.getOrNull() /** * 清除当前 [DexClassFinder] 的 [Class] 缓存 @@ -101,7 +105,7 @@ class DexClassFinder @PublishedApi internal constructor( * @param versionCode 版本号 - 默认空 */ fun clearCache(context: Context, versionName: String? = null, versionCode: Long? = null) = - context.currentSp(versionName, versionCode).edit().clear().apply() + context.currentSp(versionName, versionCode)?.edit()?.clear()?.apply() ?: yLoggerW(msg = "Failed to clear DexClassFinder's cache") } @PublishedApi @@ -451,7 +455,7 @@ class DexClassFinder @PublishedApi internal constructor( takeIf { it.isNotEmpty() }?.forEach { names.add(it.name) } context?.also { if (it.packageName == "android") error("Cannot create classes cache for \"android\", please remove \"name\" param") - it.currentSp().edit().apply { putStringSet(name, names) }.apply() + it.currentSp()?.edit()?.apply { putStringSet(name, names) }?.apply() ?: yLoggerW(msg = "Failed to use caching in DexClassFinder") } } } diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/data/ClassRulesData.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/data/ClassRulesData.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/data/ClassRulesData.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/data/ClassRulesData.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/ConstructorRules.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/FieldRules.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/FieldRules.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/FieldRules.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/FieldRules.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/MemberRules.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MemberRules.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/MemberRules.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MemberRules.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/MethodRules.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MethodRules.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/MethodRules.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/MethodRules.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/base/BaseRules.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/base/BaseRules.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/base/BaseRules.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/base/BaseRules.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/result/MemberRulesResult.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/result/MemberRulesResult.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/classes/rules/result/MemberRulesResult.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/classes/rules/result/MemberRulesResult.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/ConstructorFinder.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/ConstructorFinder.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/ConstructorFinder.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/ConstructorFinder.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/FieldFinder.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/FieldFinder.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/FieldFinder.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/FieldFinder.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/MethodFinder.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/MethodFinder.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/MethodFinder.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/MethodFinder.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/data/ConstructorRulesData.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/data/ConstructorRulesData.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/data/ConstructorRulesData.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/data/ConstructorRulesData.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/data/FieldRulesData.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/data/FieldRulesData.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/data/FieldRulesData.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/data/FieldRulesData.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/data/MemberRulesData.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/data/MemberRulesData.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/data/MemberRulesData.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/data/MemberRulesData.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/data/MethodRulesData.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/data/MethodRulesData.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/members/data/MethodRulesData.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/members/data/MethodRulesData.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/store/ReflectsCacheStore.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/store/ReflectsCacheStore.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/store/ReflectsCacheStore.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/store/ReflectsCacheStore.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/tools/ReflectionTool.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/tools/ReflectionTool.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/tools/ReflectionTool.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/tools/ReflectionTool.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/type/factory/TypeAliasFactory.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/finder/type/factory/TypeAliasFactory.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/finder/type/factory/TypeAliasFactory.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/finder/type/factory/TypeAliasFactory.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/log/LoggerFactory.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/log/LoggerFactory.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/log/LoggerFactory.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/log/LoggerFactory.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/type/android/ComponentTypeFactory.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/type/android/ComponentTypeFactory.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/type/android/ComponentTypeFactory.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/type/android/ComponentTypeFactory.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/type/android/GraphicsTypeFactory.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/type/android/GraphicsTypeFactory.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/type/android/GraphicsTypeFactory.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/type/android/GraphicsTypeFactory.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/type/android/ViewTypeFactory.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/type/android/ViewTypeFactory.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/type/android/ViewTypeFactory.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/type/android/ViewTypeFactory.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/type/defined/DefinedTypeFactory.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/type/defined/DefinedTypeFactory.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/type/defined/DefinedTypeFactory.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/type/defined/DefinedTypeFactory.kt diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/type/java/VariableTypeFactory.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/type/java/VariableTypeFactory.kt similarity index 98% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/type/java/VariableTypeFactory.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/type/java/VariableTypeFactory.kt index 4d4452a..48213cb 100644 --- a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/type/java/VariableTypeFactory.kt +++ b/yukireflection/src/main/java/com/highcapable/yukireflection/type/java/VariableTypeFactory.kt @@ -33,6 +33,7 @@ package com.highcapable.yukireflection.type.java import android.os.Build import com.highcapable.yukireflection.factory.classOf import com.highcapable.yukireflection.factory.toClass +import com.highcapable.yukireflection.factory.toClassOrNull import dalvik.system.BaseDexClassLoader import dalvik.system.DexClassLoader import dalvik.system.InMemoryDexClassLoader @@ -48,7 +49,6 @@ import java.lang.reflect.Member import java.lang.reflect.Method import java.net.HttpCookie import java.net.HttpURLConnection -import java.net.http.HttpClient import java.text.SimpleDateFormat import java.util.* import java.util.concurrent.atomic.AtomicBoolean @@ -633,9 +633,9 @@ val HttpCookieClass get() = classOf() /** * 获得 [HttpClient] 类型 - * @return [Class]<[HttpClient]> + * @return [Class] or null */ -val HttpClientClass get() = classOf() +val HttpClientClass get() = "java.net.http.HttpClient".toClassOrNull() /** * 获得 [AtomicBoolean] 类型 diff --git a/yukireflection/src/api/kotlin/com/highcapable/yukireflection/utils/UtilsFactory.kt b/yukireflection/src/main/java/com/highcapable/yukireflection/utils/UtilsFactory.kt similarity index 100% rename from yukireflection/src/api/kotlin/com/highcapable/yukireflection/utils/UtilsFactory.kt rename to yukireflection/src/main/java/com/highcapable/yukireflection/utils/UtilsFactory.kt