小编lhw*_*lhw的帖子

在maven程序集中包含共享对象

我目前正在尝试使用maven和sqlite4java构建我的项目.哪个在官方maven存储库中可用.谷歌代码上的官方sqlite4java页面确实有一个示例配置,但它有点过时,不适合我的需要.我想最后有一个.jar-File,我可以在其他地方部署.这里的问题是共享对象依赖.我正在使用他们页面中的官方构建目标将其复制到build.dir/lib,但我的程序集目标崩溃了:

[INFO] Failed to create assembly: Error adding file-set for 'com.almworks.sqlite4java:libsqlite4java-linux-i386:so:0.282' to archive: Error adding archived file-set. PlexusIoResourceCollection not found for: /home/lhw/.m2/repository/com/almworks/sqlite4java/libsqlite4java-linux-i386/0.282/libsqlite4java-linux-i386-0.282.so
No such archiver: 'so'.
Run Code Online (Sandbox Code Playgroud)

我做错了什么?这是我当前从与此主题无关​​的依赖项中删除的pom.xml

<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>de.ring0.lhw</groupId>
  <artifactId>system</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
    <dependency>
      <groupId>com.almworks.sqlite4java</groupId>
      <artifactId>sqlite4java</artifactId>
      <version>${sqlite4java.version}</version>
    </dependency>
    <dependency>
      <groupId>com.almworks.sqlite4java</groupId>
      <artifactId>libsqlite4java-linux-i386</artifactId>
      <version>${sqlite4java.version}</version>
      <type>so</type>
    </dependency>
  </dependencies>
  <properties>
    <sqlite4java.version>0.282</sqlite4java.version>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy</id>
            <phase>compile</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>com.almworks.sqlite4java</groupId>
                  <artifactId>libsqlite4java-linux-i386</artifactId>
                  <version>${sqlite4java.version}</version>
                  <type>so</type>
                  <overWrite>true</overWrite>
                  <outputDirectory>${project.build.directory}/lib</outputDirectory>
                </artifactItem> …
Run Code Online (Sandbox Code Playgroud)

java shared-libraries maven

6
推荐指数
1
解决办法
3331
查看次数

应用程序无法绑定服务

我正在尝试使用以下行绑定包含在库项目中的服务:

Intent i = new Intent();
i.setClassName("de.ring0", "de.ring0.ToolkitService");
bindService(i, this, Context.BIND_AUTO_CREATE);
Run Code Online (Sandbox Code Playgroud)

绑定过程失败,调试输出如下.根据Android开发人员文档,两个清单文件中的选项应该是正确的.

AndroidManifest.xml库项目

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="de.ring0">
    <uses-sdk android:minSdkVersion="8" />
    <application android:debuggable="true">
        <service android:name="de.ring0.ToolkitService" android:exported="true" android:enabled="true"/>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml主项目

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="de.ring0.example.tactilecompass"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.VIBRATE"></uses-permission>

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
        <activity android:name=".TactileCompassActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service android:name="de.ring0.ToolkitService" />
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

从模拟器调试日志

W/ActivityManager(   59): Permission denied: checkComponentPermission() reqUid=10036
W/ActivityManager( …
Run Code Online (Sandbox Code Playgroud)

android

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

java ×1

maven ×1

shared-libraries ×1