存储在 bintray 中的 AAR class 库不会 link 扩展 class
AAR class library stored in bintray doesn't link to the extended class
我创建了一个 Android 库,它由一个名为 WordUtils2 的 class 创建,它扩展了 Java class WordUtils。
整个项目可以在 github 中找到:
https://github.com/dequadelisonz/WordUtils2
我还将生成的 aar 文件发布到 BinTray 中,以便能够通过 Gradle 在其他 Android 项目中使用它。
该项目构建良好,似乎没有问题。
但是当我通过在模块的 gradle.build 文件中添加此行将其包含在其他 Android 项目中时:
编译(组:'it.code.martin',名称:'wordutils2',版本:'1.0.0',分机:'aar')
我在 gradle 消息中收到以下错误:
Error:(56, 36) error: cannot access WordUtils class file for
org.apache.commons.lang3.text.WordUtils not found
看起来无法访问我扩展 class 的原始 Wordutils class。
下面我报告Activity代码:
package code.martin.it.wordutilstest;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import it.code.martin.WordUtils2;
public class MainActivity extends Activity implements View.OnClickListener {
private EditText mEditText;
private TextView mTextview;
private Button mOkBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText=(EditText)findViewById(R.id.editText);
mTextview=(TextView)findViewById(R.id.textView);
mOkBtn=(Button)findViewById(R.id.button);
mOkBtn.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
String response= WordUtils2.wordToNumberIt(mEditText.getText().toString());
mTextview.setText(response);
}
}
和 build.gradle 文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion '21.1.2'
defaultConfig {
applicationId "code.martin.it.wordutilstest"
minSdkVersion 21
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile(group: 'it.code.martin', name: 'wordutils2', version: '1.0.0', ext: 'aar')
}
当然,如果需要,我可以发送我的代码的更多详细信息。
我做错了什么? Android工作室已更新至最新版本。
感谢您的帮助。
传递依赖似乎不起作用。尝试用这个
替换 build.gradle 中的依赖项
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile(group: 'it.code.martin', name: 'wordutils2', version: '1.0.0', ext: 'aar’){
transitive=true}
}
如果这不起作用,我建议下载正确的 apache commons Jar 并用它构建库,而不是使用 gradle 依赖项。
我创建了一个 Android 库,它由一个名为 WordUtils2 的 class 创建,它扩展了 Java class WordUtils。 整个项目可以在 github 中找到: https://github.com/dequadelisonz/WordUtils2
我还将生成的 aar 文件发布到 BinTray 中,以便能够通过 Gradle 在其他 Android 项目中使用它。 该项目构建良好,似乎没有问题。
但是当我通过在模块的 gradle.build 文件中添加此行将其包含在其他 Android 项目中时: 编译(组:'it.code.martin',名称:'wordutils2',版本:'1.0.0',分机:'aar') 我在 gradle 消息中收到以下错误:
Error:(56, 36) error: cannot access WordUtils class file for org.apache.commons.lang3.text.WordUtils not found
看起来无法访问我扩展 class 的原始 Wordutils class。
下面我报告Activity代码:
package code.martin.it.wordutilstest;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import it.code.martin.WordUtils2;
public class MainActivity extends Activity implements View.OnClickListener {
private EditText mEditText;
private TextView mTextview;
private Button mOkBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText=(EditText)findViewById(R.id.editText);
mTextview=(TextView)findViewById(R.id.textView);
mOkBtn=(Button)findViewById(R.id.button);
mOkBtn.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
String response= WordUtils2.wordToNumberIt(mEditText.getText().toString());
mTextview.setText(response);
}
}
和 build.gradle 文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion '21.1.2'
defaultConfig {
applicationId "code.martin.it.wordutilstest"
minSdkVersion 21
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile(group: 'it.code.martin', name: 'wordutils2', version: '1.0.0', ext: 'aar')
}
当然,如果需要,我可以发送我的代码的更多详细信息。
我做错了什么? Android工作室已更新至最新版本。 感谢您的帮助。
传递依赖似乎不起作用。尝试用这个
替换 build.gradle 中的依赖项 dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile(group: 'it.code.martin', name: 'wordutils2', version: '1.0.0', ext: 'aar’){
transitive=true}
}
如果这不起作用,我建议下载正确的 apache commons Jar 并用它构建库,而不是使用 gradle 依赖项。