uni-app 安卓离线打包 libs中增加了sqlite-release.aar之后还是提示未添加sqlite

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app 安卓离线打包 libs中增加了sqlite-release.aar之后还是提示未添加sqlite

Image Image Image Image

2024-12-26 17:10


2 回复

解决了 ,少加了一行代码,需要在main/assets/data/dcloud_properties.xml中增加<feature name="Sqlite" value="io.dcloud.feature.sqlite.DataBaseFeature" />


在uni-app项目中,如果你已经尝试将sqlite-release.aar文件添加到Android离线打包的libs目录中,但仍然收到未添加sqlite的提示,这可能是由于配置不正确或编译过程中未正确引用该库。以下是一个详细的步骤和代码示例,帮助你在uni-app项目中正确集成SQLite。

步骤 1: 放置AAR文件

确保sqlite-release.aar文件已经放置在uni-app项目的native/plugins/android/libs目录下。

步骤 2: 修改Gradle配置

打开native/plugins/android/your-plugin-name/build.gradle(假设你已经创建了一个插件来封装SQLite功能),并添加以下配置:

android {
    ...
    repositories {
        flatDir {
            dirs 'libs'
        }
    }
    ...
}

dependencies {
    implementation(name: 'sqlite-release', ext: 'aar')
}

步骤 3: 配置AndroidManifest.xml

通常,SQLite库不需要特定的权限或Activity声明,但如果你需要访问外部存储或其他资源,请确保在native/plugins/android/src/main/AndroidManifest.xml中添加了相应的权限。

步骤 4: 编写插件代码

在插件的Java/Kotlin代码中,你可以通过以下方式使用SQLite:

import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.Context;

public class MySQLiteHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "mydatabase.db";
    private static final int DATABASE_VERSION = 1;

    public MySQLiteHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // 创建表等初始化操作
        db.execSQL("CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // 版本升级时的操作
        db.execSQL("DROP TABLE IF EXISTS mytable");
        onCreate(db);
    }
}

步骤 5: 在uni-app中使用插件

确保在你的manifest.json文件中正确引用了这个插件,并在JavaScript代码中通过plus.androiduni.requireNativePlugin调用插件的Java方法。

注意事项

  • 确保所有路径和文件名都正确无误。
  • 清理并重新构建项目,确保所有更改都已生效。
  • 如果你使用的是uni-app的HBuilderX IDE,可以通过“发行”->“原生App-云端打包”或“原生App-本地打包”来测试你的应用。

通过以上步骤,你应该能够在uni-app项目中成功集成SQLite,并避免“未添加sqlite”的提示。

回到顶部