parent
818d285ccb
commit
ec0149decb
|
|
@ -4,10 +4,10 @@
|
||||||
<selectionStates>
|
<selectionStates>
|
||||||
<SelectionState runConfigName="app">
|
<SelectionState runConfigName="app">
|
||||||
<option name="selectionMode" value="DROPDOWN" />
|
<option name="selectionMode" value="DROPDOWN" />
|
||||||
<DropdownSelection timestamp="2026-03-12T10:17:50.197535700Z">
|
<DropdownSelection timestamp="2026-03-13T02:12:15.837405600Z">
|
||||||
<Target type="DEFAULT_BOOT">
|
<Target type="DEFAULT_BOOT">
|
||||||
<handle>
|
<handle>
|
||||||
<DeviceId pluginId="PhysicalDevice" identifier="serial=JRBI89BIE6AI5TG6" />
|
<DeviceId pluginId="PhysicalDevice" identifier="serial=Y5DELZR46DZTCI9D" />
|
||||||
</handle>
|
</handle>
|
||||||
</Target>
|
</Target>
|
||||||
</DropdownSelection>
|
</DropdownSelection>
|
||||||
|
|
|
||||||
|
|
@ -123,122 +123,29 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
//noinspection WrongGradleMethod
|
||||||
sourceCompatibility = JavaVersion.VERSION_11
|
androidComponents {
|
||||||
targetCompatibility = JavaVersion.VERSION_11
|
onVariants { variant ->
|
||||||
|
variant.outputs.forEach { output ->
|
||||||
|
// 关键:强制转换为 VariantOutputImpl 以访问 outputFileName
|
||||||
|
val outputImpl = output as? com.android.build.api.variant.impl.VariantOutputImpl
|
||||||
|
|
||||||
|
val flavor = variant.flavorName ?: "default"
|
||||||
|
val buildType = variant.buildType ?: "release"
|
||||||
|
val versionName = android.defaultConfig.versionName ?: "1.0.0"
|
||||||
|
// 输出格式: Rabbit_huawei_release_v1.0.0.apk
|
||||||
|
outputImpl?.outputFileName?.set("Rabbit_${flavor}_${buildType}_v${versionName}.apk")
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
android {
|
|
||||||
namespace = "com.img.rabbit"
|
|
||||||
compileSdk = 36
|
|
||||||
|
|
||||||
buildFeatures {
|
|
||||||
compose = true
|
|
||||||
buildConfig = true
|
|
||||||
viewBinding = true
|
|
||||||
}
|
|
||||||
aaptOptions {
|
|
||||||
additionalParameters("--auto-add-overlay")
|
|
||||||
}
|
|
||||||
androidResources {
|
|
||||||
ignoreAssetsPattern = "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
|
|
||||||
}
|
|
||||||
|
|
||||||
packagingOptions {
|
|
||||||
jniLibs {
|
|
||||||
useLegacyPackaging = true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
composeOptions {
|
|
||||||
kotlinCompilerExtensionVersion = "1.4.8"
|
|
||||||
}
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
applicationId = "com.img.rabbit"
|
|
||||||
minSdk = 24
|
|
||||||
targetSdk = 36
|
|
||||||
versionCode = 1
|
|
||||||
versionName = "1.0.0"
|
|
||||||
multiDexEnabled = true
|
|
||||||
|
|
||||||
|
|
||||||
setManifestPlaceholders(mapOf(
|
|
||||||
"GETUI_APPID" to (project.findProperty("GETUI_APPID") as? String ?: ""),
|
|
||||||
"GT_INSTALL_CHANNEL" to (project.findProperty("GT_INSTALL_CHANNEL") as? String ?: "GT_INSTALL_CHANNEL")
|
|
||||||
))
|
|
||||||
ndk {
|
|
||||||
abiFilters.addAll(listOf("arm64-v8a", "x86_64", "x86", "armeabi-v7a"))
|
|
||||||
}
|
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
||||||
|
|
||||||
vectorDrawables {
|
|
||||||
useSupportLibrary = true
|
|
||||||
}
|
|
||||||
multiDexEnabled = true
|
|
||||||
|
|
||||||
resConfigs("en", "zh-rCN")
|
|
||||||
|
|
||||||
flavorDimensions.addAll(listOf("channel"))
|
|
||||||
|
|
||||||
productFlavors {
|
|
||||||
create("general") {
|
|
||||||
dimension = "channel"
|
|
||||||
manifestPlaceholders["UMENG_CHANNEL"] = "general"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
productFlavors.configureEach {
|
|
||||||
dimension = "channel"
|
|
||||||
manifestPlaceholders.putAll(mapOf("UMENG_CHANNEL" to name))
|
|
||||||
}
|
|
||||||
manifestPlaceholders.putAll(mapOf(
|
|
||||||
"GETUI_APPID" to (project.findProperty("GETUI_APPID") as? String ?: ""),
|
|
||||||
"GT_INSTALL_CHANNEL" to "general",
|
|
||||||
"apk.applicationId" to "com.img.rabbit",
|
|
||||||
))
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 配置签名信息
|
|
||||||
signingConfigs {
|
|
||||||
create("config") {
|
|
||||||
storeFile = file(project.findProperty("RELEASE_STORE_FILE") ?: "bidinfo.keystore")
|
|
||||||
storePassword = project.findProperty("RELEASE_STORE_PASSWORD") as? String ?: ""
|
|
||||||
keyAlias = project.findProperty("RELEASE_KEY_ALIAS") as? String ?: ""
|
|
||||||
keyPassword = project.findProperty("RELEASE_KEY_PASSWORD") as? String ?: ""
|
|
||||||
enableV1Signing = true
|
|
||||||
enableV2Signing = true
|
|
||||||
enableV3Signing = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
buildTypes {
|
|
||||||
getByName("debug") {
|
|
||||||
isMinifyEnabled = false
|
|
||||||
isShrinkResources = false
|
|
||||||
signingConfig = signingConfigs.getByName("config")
|
|
||||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
|
||||||
}
|
|
||||||
getByName("release") {
|
|
||||||
isMinifyEnabled = false
|
|
||||||
isShrinkResources = false
|
|
||||||
signingConfig = signingConfigs.getByName("config")
|
|
||||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility = JavaVersion.VERSION_11
|
sourceCompatibility = JavaVersion.VERSION_11
|
||||||
targetCompatibility = JavaVersion.VERSION_11
|
targetCompatibility = JavaVersion.VERSION_11
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
all {
|
all {
|
||||||
|
|
@ -246,6 +153,9 @@ configurations {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.withType<JavaCompile>().configureEach {
|
||||||
|
options.compilerArgs.addAll(listOf("-Xlint:unchecked", "-Xlint:deprecation"))
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar","*.aar"))))
|
api(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar","*.aar"))))
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ final class ApkUtil {
|
||||||
public static Map<Integer, ByteBuffer> findIdValues(ByteBuffer apkSigningBlock) throws SignatureNotFoundException {
|
public static Map<Integer, ByteBuffer> findIdValues(ByteBuffer apkSigningBlock) throws SignatureNotFoundException {
|
||||||
checkByteOrderLittleEndian(apkSigningBlock);
|
checkByteOrderLittleEndian(apkSigningBlock);
|
||||||
ByteBuffer pairs = sliceFromTo(apkSigningBlock, 8, apkSigningBlock.capacity() - 24);
|
ByteBuffer pairs = sliceFromTo(apkSigningBlock, 8, apkSigningBlock.capacity() - 24);
|
||||||
Map<Integer, ByteBuffer> idValues = new LinkedHashMap();
|
Map<Integer, ByteBuffer> idValues = new LinkedHashMap<>();
|
||||||
int entryCount = 0;
|
int entryCount = 0;
|
||||||
while(pairs.hasRemaining()) {
|
while(pairs.hasRemaining()) {
|
||||||
++entryCount;
|
++entryCount;
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ class CutoutViewModel : BaseViewModel() {
|
||||||
if (response.status) {
|
if (response.status) {
|
||||||
Log.i("CutoutViewModel", "抠图成功: ${response.data}")
|
Log.i("CutoutViewModel", "抠图成功: ${response.data}")
|
||||||
|
|
||||||
val resultUrl = response.data.toString()
|
val resultUrl = Uri.decode(response.data.toString())
|
||||||
// 将 http 替换为 https
|
// 将 http 替换为 https
|
||||||
//val resultUrl = response.data.toString().replace("http://", "https://")
|
//val resultUrl = response.data.toString().replace("http://", "https://")
|
||||||
saveUrlToCache(resultUrl, onResult)
|
saveUrlToCache(resultUrl, onResult)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue