MBTilesWriter java.lang.UnsatisfiedLinkError slice-sqlite-jdbc-3.8.7

时间:2017-01-06 16:11:02

标签: java android sqlite android-studio

我正在使用Android App中的mbtiles4j编写器在AsyncTask类中创建一个新的.mbtiles文件。

这是我的java代码:

private class FetchData extends AsyncTask<String, Void, String> {
  private Exception exception;

  @Override
  protected String doInBackground(String... routeSelected) {
    MBTilesWriter w = null;
    String filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyRoutes/" + routeSelected;
    try {
      outputFile = new File(filePath);
      w = new MBTilesWriter(outputFile);
      new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyRoutes").mkdirs();
    } catch (MBTilesWriteException e) {
      this.exception = e;
      System.out.println("exception: " + e);
      return "";
    }

    //Irrelevant code removed here...

    return filePath;
  }
}

Windows 10 x64位的完整错误报告。 http://pastebin.com/raw/fhSH8qJr

build.gradle如下所示

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    //compile 'org.imintel:mbtiles4j:1.0.5'
    compile 'org.xerial:sqlite-jdbc:3.8.7'
    compile 'commons-io:commons-io:2.5'

mbtiles4j实际上包含在我的项目中:见截图。通过build.gradle包含它还有其他问题,所以我设法像这样解决它。 mbtilesreader工作得很好!

编辑:禁用即时运行,现在出现错误代码:找不到“libsqlitejdbc.so”

android studio

1 个答案:

答案 0 :(得分:1)

感谢@Morrison Chang和@ cCOOK

我不得不为特定的Android实现重写MBTilesWriter。 Check it out here