编写so文件以及android studio国内镜像配置

查看 112|回复 10
作者:namename123   
网上好多资料和教程都太老了,自己报错了好久。分享一下希望大家少走弯路
像这样去新建一个C++项目
最开始构建可以会很慢(除非科学上网)
我们可以自定义国内的镜像,以及本地gradle包
首先选择我们本地gradle包
distributionurl=https\://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.7-bin.zip
可以在这里去自己下载好一个包,记录一下
然后找到我们的环境变量
在系统变量下面新建两个,如图
第一个地址是我们自己去下载的gradle的包解压后
然后在path里面
%GRADLE_HOME%\bin
加上这个路径
这样我们后续清理缓存什么的比较方便
第二个文件默认是在 c盘 user 你的用户名 .gradle里面
可以改可以不改
我们配置全局环境
就在你自己的.gradle目录里面
新建一个(如果有就自己修改)
init.gradle
文件
文件内容为
[Asm] 纯文本查看 复制代码// 修复版 init.gradle(兼容 Gradle 7.0+)
// 配置优先级:settings > init.gradle > build.gradle
beforeSettings { settings ->
    // 全局仓库配置(通过 dependencyResolutionManagement)
    settings.dependencyResolutionManagement {
        repositoriesMode = RepositoriesMode.PREFER_SETTINGS // 强制使用 settings 仓库
        repositories {
            clear()
            // 主仓库镜像
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://repo.huaweicloud.com/repository/maven' }
            maven { url 'https://mirrors.cloud.tencent.com/nexus/repository/maven-public' }
            // Google 仓库镜像
            maven { url 'https://maven.aliyun.com/repository/google' }
            // 中央仓库备份
            mavenCentral()
        }
    }
    // 插件仓库配置
    settings.pluginManagement {
        repositories {
            clear()
            maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
            maven { url 'https://repo.huaweicloud.com/repository/maven' }
            maven { url 'https://mirrors.cloud.tencent.com/nexus/repository/maven-public' }
            mavenCentral()
        }
    }
}
allprojects {
    buildscript {
        repositories {
            clear()
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://repo.huaweicloud.com/repository/maven' }
            maven { url 'https://mirrors.cloud.tencent.com/nexus/repository/maven-public' }
            maven { url 'https://maven.aliyun.com/repository/google' }
            mavenCentral()
        }
    }
}
这样放着就好
现在你在去AS里面构建应该就快得多了
(如果报错URL什么的,记得去设置里面把gradle改为本地,我每次打开都要重新设置)
现在开始写so
可以看见下面是我们java的声明
这里我的例子就是一个string 方法,传入什么输出什么
在这cpp里面我们具体写实现
[C] 纯文本查看 复制代码extern "C" JNIEXPORT jstring JNICALL
Java_com_example_so_1moudule_MainActivity_helloworld(
        JNIEnv* env,
        jobject /* this */, jstring str) {
    // 1. 获取 Java 字符串的 C 风格字符指针
    const char* nativeStr = env->GetStringUTFChars(str, nullptr);
    if (nativeStr == nullptr) {
        // 处理空指针(例如,输入字符串为 null)
        return env->NewStringUTF("输入字符串为 null");
    }
    // 2. 将 C 风格字符串转换为 std::string
    std::string input_str(nativeStr);
    // 3. 释放资源(必须!避免内存泄漏)
    env->ReleaseStringUTFChars(str, nativeStr);
    // 4. 将 std::string 转换为 jstring 返回
    return env->NewStringUTF(input_str.c_str());
}
保存好就ok ,如图
现在运行整个apk文件在你的手机里面
完成


image.png (62.41 KB, 下载次数: 1)
下载附件
2025-3-31 17:07 上传

我们再去看看so文件,在build里面可以构建apk文件
\so_moudule\app\build\outputs\apk\debug
目录大约是这样


image.png (90.65 KB, 下载次数: 1)
下载附件
2025-3-31 17:08 上传

完成!

文件, 镜像

无颜君〃   


namename123 发表于 2025-3-31 17:18
图没了
环境变量里面
GRADLE_HOME   E:\Android\code\gradle\gradle-8.13

楼主 android studio 这玩意到底有汉化没。
阿定   

请教这个怎么解决,弄了好多天,什么版本的gradle都试过了,国内镜像都改了、科学上网也试了怎样都不行:
Plugin [id: 'com.android.application', version: '8.7.0', apply: false] was not found in any of the following sources:
- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Included Builds (No included builds contain this plugin)
- Plugin Repositories (could not resolve plugin artifact 'com.android.application:com.android.application.gradle.plugin:8.7.0')
  Searched in the following repositories:
    maven(https://maven.aliyun.com/repository/gradle-plugin)
    maven2(https://repo.huaweicloud.com/repository/maven)
    maven3(https://mirrors.cloud.tencent.com/nexus/repository/maven-public)
    MavenRepo
    Google
    MavenRepo2
    Gradle Central Plugin Repository
namename123
OP
  

图没了
环境变量里面
GRADLE_HOME   E:\Android\code\gradle\gradle-8.13
GRADLE_USER_HOME   E:\Android\code\.gradle
根据自己地址修改
然后gralde 本地设置里面 点bulid 下面就有gradle设置
508916   

感谢分享,我最近也在用Android Studio,
xuanle   

android studio实在麻烦,特别是gradle,很多版本,如果从网上下载的源码,都是要重新下载对应版本的gradle。
Tomlls   

感谢分享 昨天下载gradle下了整整一个小时,早点看到这个帖子就好了
namename123
OP
  


无颜君〃 发表于 2025-3-31 20:46
楼主 android studio 这玩意到底有汉化没。

新版本好像没,以前老版本可以
duokebei   

感谢楼主
chathack   

so 文件相当于  windows中的dll 吧?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部