我仍在开发Android静态应用程序,其中所有内容都是静态的,所有由我设计的内容都不会被网站获取,但现在
#我开始开发网络应用程序,即所有内容都来自网站。我搜索了很多东西,我只得到“WebView”,其中整个网站将显示在我的 WebView 中。所以有一个问题,我想从任何网站获取特定内容,例如来自网站的事件图像并在我的活动中显示。请帮助我开始网络应用程序开发。
有api吗??提前致谢。
#我有2个项目。一个是我的 Main Project(A) ,另一个是 Library Project(B) 。我想从 B 中的活动开始 A 中存在的活动。我该怎么做?
我试过了startActivity(getApplicationContext(),B.class);
,但是
B级
没有解决。
如何让我的图书馆项目开始我的主要项目的活动?
每当我使用 Edit Test 库运行应用程序时,它都会显示UNEXPECTED TOP-LEVEL EXCEPTION:
Error:Execution failed for task ':mobile:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
E:\Android\me\me\sdk\build-tools\21.1.2\dx.bat --dex --no-optimize --output C:\Project\RemoteiT\RemoteiT\mobile\build\intermediates\dex\debug --input-list=C:\Project\RemoteiT\RemoteiT\mobile\build\intermediates\tmp\dex\debug\inputList.txt
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/nineoldandroids/animation/Animator$AnimatorListener;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
Run Code Online (Sandbox Code Playgroud)
我假设上面的错误表明com.nineoldandroids添加了两次或冲突。
所以我试图在 build.gradle 文件中删除它。但它仍然显示错误!
我的假设是对的吗?还是我在其他地方出错了?
构建.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2" …Run Code Online (Sandbox Code Playgroud) 我想知道为 Android 库项目定义构建脚本存储库和依赖项的最佳/预期方法是什么。
在野外(如 Github),大多数存储库都在 build.gradle 中定义了以下内容
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
} }
Run Code Online (Sandbox Code Playgroud)
但是,如果我在 Android Studio 中创建一个库项目,则不会创建此 buildscript 块,因为它已经在根 build.gradle 文件中,因此没有必要(我假设)。
那么正确的方法是什么,只在根 build.gradle 或每个库项目中定义一次(这也意味着在新插件版本的情况下更新每个库的版本号)。或者这取决于我是否想独立于我的主应用程序发布该库?
我想在我的库上使用proguard,但文件(规则)应该在库中设置.这意味着我不想在我的app模块中明确设置规则w(属于库).
我发现有类似consumerProguardFiles的属性.我的设置:
库gradle:
buildTypes {
debug {
debuggable true
minifyEnabled false
}
release {
minifyEnabled true
consumerProguardFiles 'proguard-rules.pro'
}
}
Run Code Online (Sandbox Code Playgroud)
app gradle:
buildTypes {
debug {
applicationIdSuffix ".debug"
debuggable true
minifyEnabled false
signingConfig signingConfigs.debug
}
release {
debuggable false
minifyEnabled true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Run Code Online (Sandbox Code Playgroud)
为什么上面的配置不起作用?我收到错误,无法找到库中的包/符号.
编辑:
重要的是我的proguard-rules.pro用于库和proguard-rules.pro用于主应用程序模块都是空的.
示例错误:
Error:(3, 60) error: package (my library package here) does not exist
(...)
Error:(16, 9) error: cannot find symbol class NavigationStructureModel
(...)
Run Code Online (Sandbox Code Playgroud)
超过一个handrued错误.我可以看到我的库中的所有课程都丢失了.
android proguard android-library android-studio android-proguard
我有一个使用 Kotlin Coroutines 并使用 CoroutineScope 作为的库
private val coroutineScope by lazy(mode = LazyThreadSafetyMode.NONE) {
CoroutineScope(Dispatchers.Main)
}
Run Code Online (Sandbox Code Playgroud)
当我在其他项目中使用该库时,出现错误:
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: java.lang.ClassNotFoundException: Didn't find class "kotlinx.coroutines.Dispatchers" on path: DexPathList[[zip file "/data/app/com.ssss.ssss-X44QPiLhKdl-D6eyVAYkOA==/base.apk"],nativeLibraryDirectories=[/data/app/com.ssss.testauthenticater-X44QPiLhKdl-D6eyVAYkOA==/lib/x86, /system/lib, /system/product/lib]]
Run Code Online (Sandbox Code Playgroud)
我也添加-keepnames class kotlinx.** { *; }
了我的消费者专业防护文件。
有没有人有类似的问题?我在 android 中使用协程 1.3.3。
我有一个使用Android库项目的主要Android应用程序.当我更改我的库项目和/ Build Project或Build All在主项目中未检测到更改,直到我清理主项目或关闭并重新打开Eclipse.
我如何解决这个问题?有没有快速解决方案?
更新
我在用:
Eclipse 3.7.1
Android SDK API 15 Rev 3
Android SDK工具Rev 19
Android SDK平台工具Rev 11
我已经为3个应用程序创建了两个带有共享代码和资源的android库项目.其中一个库(我称之为库A)具有由所有3个应用程序共享的代码和资源,另一个库具有仅由三个中的两个共享的代码和资源(让我们称之为库B).
所以我让库B依赖于A.我遇到的问题是依赖于库B的两个应用程序.当启动第一个Activity时,我尝试访问库B中定义的xml布局中的元素时得到NoSuchFieldErrors或NullPointerExceptions似乎它无法从工程师B中的超级类中找到资源.我创建了一个小例子来重现问题.
在图书馆A:
AActivity.java:
public class AActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
doStuff();
}
protected void doStuff() {
}
}
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="com.example.testlib"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.testliba.AActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
在图书馆B中:
BActivity.java:
public class BActivity extends AActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main_b);
super.onCreate(savedInstanceState);
AlertDialog alertDialog = new …Run Code Online (Sandbox Code Playgroud) 我刚刚使用Gradle创建了一个新的Android库项目,并希望通过Proguard对代码进行优化和混淆.
这是build.gradle文件的android部分:
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.txt'
}
}
Run Code Online (Sandbox Code Playgroud)
当我从终端运行gradle build命令时,它在:library:proguardRelease失败并显示以下消息:
* What went wrong:
Execution failed for task ':library:proguardRelease'.
> java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?
Run Code Online (Sandbox Code Playgroud)
有谁知道这是为什么?
Gradle 1.10 JVM 1.6.0_65 Progruard 4.10
我是SwipeListView库的新手,当其中一个列表项被刷过时,该功能的工作原理如下:

该应用程序正在运行,但是视图混乱,使得隐藏的内容(即,在滑动列表项之后看到的内容)被覆盖在每个列表项的顶部.按照下面的图片,我已经粘贴了片段代码.
我怎样才能解决这个问题?
没有SwipeListView:

使用SwipeListView:

import java.util.ArrayList;
import java.util.List;
import android.app.Fragment;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Typeface;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.example.test.ItemAdapter;
import com.example.test.ItemRow;
import com.example.test.R;
import com.fortysevendeg.swipelistview.BaseSwipeListViewListener;
import com.fortysevendeg.swipelistview.SwipeListView;
public class MyList extends Fragment {
@Override
public void onPause() {
// TODO Auto-generated method stub
super.onPause();
index = list.getFirstVisiblePosition();
}
@Override
public void onResume() {
// …Run Code Online (Sandbox Code Playgroud) android ×10
android-library ×10
proguard ×2
build.gradle ×1
compilation ×1
gradle ×1
kotlin ×1